В индексе эластика хранятся вложенные структуры данных по которым хочется осуществлять корректный поиск.
Пример индекса:{
"title": {"type": "text"},
"subEntity": {
"type": "object",
"properties": {
"id": {"type": "integer"},
"value": {"type": "text"}
}
}
}
Пример данных:{
"title": "Stub",
"subEntity": [
{"id": 1, "value": "red"},
{"id": 2, "value": "yellow"},
{"id": 3, "value": "green"}
]
}
Пример запроса:{
"query": {
"bool": {
"must": [
{"match": {"subEntity.id": 1}},
{"match": {"subEntity.value": "yellow"}}
]
}
}
}
Естественно поиск будет осуществляться не на уровне одной и той же вложенной структуры (subEntity), а по всем вложенным структурам в рамках одной записи, и по описанному запросу найдётся приведённый выше пример.
Можно ли каким-то образом, не перестраивая индекс, организовать запрос так, чтобы поиск производился в рамках каждой вложенной структуры, а не записи в целом?
Если для корректного поиска по subEntity их всё таки придётся вынести в отдельный индекс, то можно ли получать родительские записи одним запросом?
Версия ES: 6.4