Elasticsearch 6.1.1 Java Api, отсутствует дочерняя агрегация

Выполнение давно назревшего обновления с ES 2.X до ES 6.1.1. Я изменил сопоставление родитель/потомок, чтобы он был типом соединения, поэтому он действителен для 6.X. Однако нам нужно использовать дочернюю агрегацию.

В документах говорится, что он доступен: https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/_bucket_aggregations.html#java-aggs-bucket-children

Однако, если вы посмотрите на документы Java, они недоступны: https://artifacts.elastic.co/javadoc/org/elasticsearch/elasticsearch/6.1.1/org/elasticsearch/search/aggregations/AggregationBuilders.html

Как правильно создать дочернюю агрегацию для Elasticsearch 6.X, поскольку java API недоступен? Единственный способ создать и отправить запрос без использования транспортного клиента Java?


person Needs Help    schedule 05.02.2018    source источник


Ответы (1)


Я нашел свой ответ, просматривая тесты. Агрегации типа соединения теперь имеют собственный построитель.

import org.elasticsearch.join.aggregations.{ChildrenAggregationBuilder, JoinAggregationBuilders}

Документация Elasticsearch явно устарела, а JoinAggregationBuilders отсутствует в javadocs. https://github.com/elastic/elasticsearch/blob/bd92e7fa5e5fdc625249707ecf371781b157d668/modules/parent-join/src/test/java/org/elasticsearch/join/aggregations/ChildrenIT.java#L48

person Needs Help    schedule 05.02.2018