Проблема с вложенным фильтром при использовании сортировки

После обновления с 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 использует устаревший синтаксис.

Это все еще работает, но мне не нравится получать предупреждения об устаревании, и в какой-то момент это, вероятно, вызовет ошибку.

0 ответов

Другие вопросы по тегам