88from DataSpace import settings
99from search .documents .analysers import html_strip , ngram_analyser
1010
11+ # Create separate indices for each publisher document type
12+ ORG_INDEX = Index (settings .ELASTICSEARCH_INDEX_NAMES [f"{ __name__ } .OrganizationPublisherDocument" ])
13+ ORG_INDEX .settings (number_of_shards = 1 , number_of_replicas = 0 )
14+
15+ USER_INDEX = Index (settings .ELASTICSEARCH_INDEX_NAMES [f"{ __name__ } .UserPublisherDocument" ])
16+ USER_INDEX .settings (number_of_shards = 1 , number_of_replicas = 0 )
17+
1118
1219class PublisherDocument (Document ):
1320 """Elasticsearch document for Publisher (Organization and User) models."""
@@ -318,13 +325,10 @@ def get_instances_from_related(
318325 return publishers if publishers else None
319326
320327
328+ @ORG_INDEX .doc_type
321329class OrganizationPublisherDocument (PublisherDocument ):
322330 """Organization-specific publisher document."""
323331
324- class Index :
325- name = settings .ELASTICSEARCH_INDEX_NAMES [f"{ __name__ } .OrganizationPublisherDocument" ]
326- settings = {"number_of_shards" : 1 , "number_of_replicas" : 0 }
327-
328332 class Django :
329333 """Django model configuration."""
330334
@@ -343,13 +347,10 @@ class Django:
343347 ]
344348
345349
350+ @USER_INDEX .doc_type
346351class UserPublisherDocument (PublisherDocument ):
347352 """User-specific publisher document."""
348353
349- class Index :
350- name = settings .ELASTICSEARCH_INDEX_NAMES [f"{ __name__ } .UserPublisherDocument" ]
351- settings = {"number_of_shards" : 1 , "number_of_replicas" : 0 }
352-
353354 class Django :
354355 """Django model configuration."""
355356
0 commit comments