Проблема с вложенным фильтром при использовании сортировки
После обновления с Elasticsearch 5.0 до Elasticsearch 6.4 я получаю следующие предупреждения при использовании сортировки:
! Устаревание: [nested_path] устарело в пользу параметра [nested]
! Устаревание: [nested_filter] устарел, вместо параметра [nested]
При использовании ongr/asticsearch-dsl мой запрос сортировки выглядит так:
"sort": [
{
"_channels._showOrder": {
"nested_path": "_channels",
"order": "asc",
"nested_filter": {
"term": {
"_channels.id": 1658
}
}
}
}
],
В Elasticsearch 6.4 это должно выглядеть так:
"sort" : [
{
"_channels._showOrder" : {
"order" : "asc",
"nested": {
"path": "_channels",
"filter": {
"term" : { "_channels.id" : 1658 }
}
}
}
}
]
Похоже, что FieldSort необходимо обновить для поддержки новой структуры. В настоящее время setNestedFilter для FieldSort использует устаревший синтаксис.
Это все еще работает, но мне не нравится получать предупреждения об устаревании, и в какой-то момент это, вероятно, вызовет ошибку.