"""Establishment app documents.""" from django.conf import settings from django_elasticsearch_dsl import Document, Index, fields from search_indexes.utils import OBJECT_FIELD_PROPERTIES from establishment import models EstablishmentIndex = Index(settings.ELASTICSEARCH_INDEX_NAMES.get(__name__, 'establishment')) EstablishmentIndex.settings(number_of_shards=1, number_of_replicas=1) @EstablishmentIndex.doc_type class EstablishmentDocument(Document): """Establishment document.""" description = fields.ObjectField(properties=OBJECT_FIELD_PROPERTIES) tags = fields.ObjectField( properties={ 'id': fields.IntegerField(attr='id'), 'label': fields.ObjectField(attr='label') }, multi=True) class Django: model = models.Establishment fields = ( 'id', 'name', 'public_mark', 'toque_number', 'price_level', ) def prepare_description(self, instance): return instance.description def prepare_tags(self, instance): return instance.tags_indexing