Как определить поля_поиска_по умолчанию в 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, поиск по определенному городу или штату не работает. Пожалуйста, посоветуйте.