Пример использования NestedSortBuilder для asticsearch 6.3.2

Я должен отсортировать поле, вложенное на один уровень, используя API-интерфейс эластичного Java высокого уровня. Я мог бы найти этот ответ

Elasticsearch вложенная сортировка

Проблема в том, что ответ использует SortBuilder для сортировки вложенных полей с использованием следующего кода:

SortBuilder sb = SortBuilders.fieldSort("authorList.lastName")
    .order(SortOrder.ASC)
    .setNestedPath("authorList")
    .setNestedFilter(matchFirst);

Однако кажется, что nestedPath и NestedFilter устарели в версии 6.3.2 эластичного ( информация об ограничении) и был представлен новый NestedSortBuilder. Однако я не смог построить запрос, используя его. Может ли кто-нибудь объяснить, как его использовать, или, возможно, указать мне на пример, где он был использован?

1 ответ

Решение

На самом деле было легко. Это работает для меня:

SortBuilders.fieldSort("bulkOrders.expiryDate").order(SortOrder.asc).setNestedSort(new NestedSortBuilder("bulkOrders"));

Это эквивалентно:

"sort": [
        {
          "bulkOrders.expiryDate": {
            "order": "asc",
            "nested": {
              "path": "bulkOrders"
            }
          }
        }
      ]
Другие вопросы по тегам