Как определить поля_поиска_по умолчанию в StretchIndex для типа Object

Я пытаюсь применить поиск для некоторых дочерних атрибутов объекта в эластичном поиске StretchIndex.

Базовый атрибут определяется следующим образом.

   primary_occupied_property = elasticsearch_dsl.Object(
        source='get_primary_occupied_property',
        properties=PROPERTY_MAPPING_PROPERTIES,
        dynamic=False,
        enabled=True,
    )

PROPERTY_MAPPING_PROPERTIES определены следующим образом.

PROPERTY_MAPPING_PROPERTIES = {
    'building': elasticsearch_dsl.Object(properties=BUILDING_MAPPING_PROPERTIES)
}

BUILDING_MAPPING_PROPERTIES определяется следующим образом.

'city': elasticsearch_dsl.Keyword(
        fields={
            'standard': elasticsearch_dsl.Text(analyzer='standard'),
            'autocomplete': elasticsearch_dsl.Text(analyzer=autocomplete_analyzer)
        }),
    'state': elasticsearch_dsl.Keyword(
        fields={
            'standard': elasticsearch_dsl.Text(analyzer='standard'),
            'autocomplete': elasticsearch_dsl.Text(analyzer=autocomplete_analyzer)
        }),

При проверке индекса мы получаем следующие данные.

"primary_occupied_property": {
            "dynamic": "false",
            "properties": {
              "building": {
                "properties": {
                  "address": {
                    "type": "keyword"
                  },
                  "city": {
                    "type": "keyword",
                    "fields": {
                      "autocomplete": {
                        "type": "text",
                        "analyzer": "autocomplete_analyzer"
                      },
                      "standard": {
                        "type": "text",
                        "analyzer": "standard"
                      }
                    }
                  },
            }
}

Поля_поиска_по_умолчанию определяются как -

default_search_fields = [
            'primary_occupied_property.building.city.standard',
            'primary_occupied_property.building.state.standard',
            'primary_occupied_property.building.city.autocomplete',
            'primary_occupied_property.building.state.autocomplete',
        ]
      

Однако, когда я выполняю API, поиск по определенному городу или штату не работает. Пожалуйста, посоветуйте.

Вернуться на верх