diff --git a/apps/product/models.py b/apps/product/models.py index 87384e6b..e0e80320 100644 --- a/apps/product/models.py +++ b/apps/product/models.py @@ -78,6 +78,12 @@ class ProductQuerySet(models.QuerySet): return self.select_related('product_type', 'establishment') \ .prefetch_related('product_type__subtypes') + def with_es_related(self): + """Returns qs with related for ES indexing.""" + return self.with_base_related().prefetch_related('tags', 'classifications', 'classifications__tags', + 'classifications__type', 'classifications_standard', + 'standards').select_related('wine_region', 'wine_sub_region') + def common(self): return self.filter(category=self.model.COMMON) diff --git a/apps/search_indexes/documents/product.py b/apps/search_indexes/documents/product.py index 039f1bf1..d2d8be42 100644 --- a/apps/search_indexes/documents/product.py +++ b/apps/search_indexes/documents/product.py @@ -51,18 +51,6 @@ class ProductDocument(Document): properties={ 'label': fields.ObjectField(attr='label_indexing', properties=OBJECT_FIELD_PROPERTIES), 'value': fields.KeywordField(), - 'category': fields.ObjectField(properties={ - 'label': fields.ObjectField(attr='label_indexing', properties=OBJECT_FIELD_PROPERTIES), - 'public': fields.BooleanField(), - 'index_name': fields.KeywordField(), - 'value_type': fields.KeywordField(), - 'country': fields.ObjectField(properties={ - 'id': fields.IntegerField(), - 'name': fields.ObjectField(attr='name_indexing', - properties=OBJECT_FIELD_PROPERTIES), - 'code': fields.KeywordField(), - }), - }), }, multi=True ), @@ -85,18 +73,6 @@ class ProductDocument(Document): properties={ 'label': fields.ObjectField(attr='label_indexing', properties=OBJECT_FIELD_PROPERTIES), 'value': fields.KeywordField(), - 'category': fields.ObjectField(properties={ - 'label': fields.ObjectField(attr='label_indexing', properties=OBJECT_FIELD_PROPERTIES), - 'public': fields.BooleanField(), - 'index_name': fields.KeywordField(), - 'value_type': fields.KeywordField(), - 'country': fields.ObjectField(properties={ - 'id': fields.IntegerField(), - 'name': fields.ObjectField(attr='name_indexing', - properties=OBJECT_FIELD_PROPERTIES), - 'code': fields.KeywordField(), - }), - }), }, multi=True ) @@ -118,4 +94,4 @@ class ProductDocument(Document): related_models = [models.ProductType] def get_queryset(self): - return super().get_queryset().published().with_base_related() + return super().get_queryset().published().with_es_related()