Как получить количество данных совпадений с помощью Count API вasticsearch-6.4.0.jar - PullRequest
0 голосов
/ 19 апреля 2020

Мне нужно получить количество совпадающих данных из ElasticSearch, используя REST API. В настоящее время я используюasticsearch-6.4.0.jar для написания API. К сожалению, я не смог найти CountAPI в этой версии.

Более того, я попытался использовать более старую версию jar (asticsearch-2.4.0.jar). Там я мог видеть классы CountRequest и CountResponse. Этот класс поможет нам выбрать графа.

CountRequest countRequest = new CountRequest(); 
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); 
searchSourceBuilder.query(QueryBuilders.matchAllQuery()); 
countRequest.source(searchSourceBuilder);

Однако 2.4.0 - очень старая версия. Поэтому не могли бы вы помочь мне найти устаревшую версию вasticsearch-6.4.0.jar

1 Ответ

0 голосов
/ 20 апреля 2020

Если вы имели в виду, что используете Java High Level Rest Client 6.4, count был добавлен в него только в версии v6.6. https://github.com/elastic/elasticsearch/pull/34267

В версии 2.4 используется клиент транспорта, который устарел с версии 7.0. Elasti c рекомендует использовать HLR C, который, я думаю, вы уже делаете.

HLR C была дополнена поддержкой всех API только в 7.0. Поскольку версия клиента HLR C сильно зависит от версии вашего кластера, вы можете быть ограничены, но, если возможно, попробуйте обновить версию библиотеки до> = 6.6.

Если вы не можете обновить версию драйвера, я могу придумать вариант

  • для вызова через LLR C (класс RestClient) (без поддержки компоновщиков объектов)
  • или go назад и использование подхода Transport Client

https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.6/java-rest-high-compatibility.html#java -rest-high-compatibility

Клиент высокого уровня гарантированно сможет обмениваться данными с любым узлом Elasticsearch, работающим на та же основная версия и большая или равная младшая версия. Он не должен быть в той же младшей версии, что и узлы Elasticsearch, с которыми он связывается, поскольку он совместим с прямой версией, что означает, что он поддерживает связь с более поздними версиями Elasticsearch, чем та, для которой он был разработан.

Клиент 6.0 может обмениваться данными с любым узлом 6.x Elasticsearch, в то время как клиент 6.1 наверняка может обмениваться данными с 6.1, 6.2 и более поздней версией 6.x, но могут быть проблемы несовместимости при взаимодействии с предыдущей версией узла Elasticsearch например, между 6.1 и 6.0, если клиент 6.1 поддерживает новые поля тела запроса для некоторых API, которые не известны узлам 6.0.

...