Есть ли в Elasticsearch способ проверить, по какому полю отсортированы результаты? Я хочу что-то вроде внутренних хитов для предложения сортировки.
Представьте, что ваши документы имеют такую форму:
{"numerals" : [ // nested
{"key": "point", "value": 30},
{"key": "points", "value": 200},
{"key": "score", "value": 20},
{"key": "scores", "value": 40}
]
}
и вы сортируете результаты по:
{"numerals.value": {
"nested_path": "numerals",
"nested_filter": {
"match": {
"numerals.key": "score"}}}}
Теперь я понятия не имею, как узнать поле, по которому на самом деле сортируются результаты: это, вероятно, scores
в этом документе, но, возможно, score
в других? Есть 2 проблемы - 1. Вы не можете использовать ни внутренние хиты, ни выделение для вложенных полей. и - 2. Даже если вы можете, это не решит проблему, если есть несколько совпадающих кандидатов.
term
во вложенном фильтре? - person Val   schedule 14.06.2017match
. - person akai   schedule 14.06.2017score
иscores
? Почему бы просто не использовать тот же термин? - person Val   schedule 14.06.2017key
s. - person akai   schedule 14.06.2017numerals.key
? - person Val   schedule 19.06.2017text
- person akai   schedule 20.06.2017