Если вы имели в виду, что используете 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.