Skip to content

Commit 813ba3b

Browse files
committed
alter the options to include analyzer/searchanalyzer
1 parent b5476fd commit 813ba3b

File tree

3 files changed

+22
-20
lines changed

3 files changed

+22
-20
lines changed

django_mongodb_backend/indexes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ def get_pymongo_index_model(
193193
if self.search_analyzer is not None:
194194
analyzers["searchAnalyzer"] = self.search_analyzer
195195
return SearchIndexModel(
196-
definition={"mappings": {"dynamic": False, "fields": fields, **analyzers}},
196+
definition={"mappings": {"dynamic": False, "fields": fields}, **analyzers},
197197
name=self.name,
198198
)
199199

django_mongodb_backend/introspection.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,11 @@ def _get_search_index_info(self, table_name):
4444
type_ = VectorSearchIndex.suffix
4545
options = details
4646
else:
47-
options = details["latestDefinition"]["mappings"]
47+
options = {
48+
"analyzer": details["latestDefinition"].get("analyzer"),
49+
"searchAnalyzer": details["latestDefinition"].get("searchAnalyzer"),
50+
"mappings": details["latestDefinition"]["mappings"],
51+
}
4852
columns = list(options.get("fields", {}).keys())
4953
type_ = SearchIndex.suffix
5054
constraints[details["name"]] = {

tests/indexes_/test_search_indexes.py

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ def test_valid_fields(self):
202202
},
203203
}
204204
self.assertCountEqual(index_info[index.name]["columns"], index.fields)
205-
self.assertEqual(index_info[index.name]["options"], expected_options)
205+
self.assertEqual(index_info[index.name]["options"]["mappings"], expected_options)
206206
finally:
207207
with connection.schema_editor() as editor:
208208
editor.remove_index(index=index, model=SearchIndexTestModel)
@@ -212,12 +212,10 @@ def test_field_mappings(self):
212212
name="recent_test_idx",
213213
field_mappings={
214214
"char": {
215-
"type": "string",
216-
"analyzer": "lucene.standard",
217-
"searchAnalyzer": "lucene.standard",
215+
"indexOptions": "offsets",
218216
"norms": "include",
219217
"store": True,
220-
"indexOptions": "offsets",
218+
"type": "string",
221219
}
222220
},
223221
)
@@ -232,17 +230,15 @@ def test_field_mappings(self):
232230
"dynamic": False,
233231
"fields": {
234232
"char": {
235-
"type": "string",
236-
"analyzer": "lucene.standard",
237-
"searchAnalyzer": "lucene.standard",
233+
"indexOptions": "offsets",
238234
"norms": "include",
239235
"store": True,
240-
"indexOptions": "offsets",
236+
"type": "string",
241237
}
242238
},
243239
}
244240
self.assertCountEqual(index_info[index.name]["columns"], index.fields)
245-
self.assertEqual(index_info[index.name]["options"], expected_options)
241+
self.assertEqual(index_info[index.name]["options"]["mappings"], expected_options)
246242
finally:
247243
with connection.schema_editor() as editor:
248244
editor.remove_index(index=index, model=SearchIndexTestModel)
@@ -262,16 +258,18 @@ def test_analyzer_inclusion(self):
262258
table_name=SearchIndexTestModel._meta.db_table,
263259
)
264260
expected_options = {
265-
"dynamic": False,
266261
"analyzer": "lucene.simple",
267262
"searchAnalyzer": "lucene.simple",
268-
"fields": {
269-
"char": {
270-
"indexOptions": "offsets",
271-
"norms": "include",
272-
"store": True,
273-
"type": "string",
274-
}
263+
"mappings": {
264+
"dynamic": False,
265+
"fields": {
266+
"char": {
267+
"indexOptions": "offsets",
268+
"norms": "include",
269+
"store": True,
270+
"type": "string",
271+
}
272+
},
275273
},
276274
}
277275
self.assertCountEqual(index_info[index.name]["columns"], index.fields)

0 commit comments

Comments
 (0)