如何使用 JAVA 高级 REST 客户端获取索引中存在的文档总数



我想知道索引中存在的所有文档的计数,是否可以使用 java 高级休息客户端 COUNT API 获取计数?

您可以使用 cat count 或 Count API 获取索引中所有文档的计数。如果您使用的是 elasticsearch 6.6 及更高版本,那么您可以点击此链接使用 Java 高级 REST 客户端的 Count API 获取计数。

如果您使用的是旧版本,则必须使用 Java 低级 REST 客户端来获取文档计数。

因为 RestHighLevelClient 建立在 Low Level REST 客户端之上。

RestHighLevelClient client = new RestHighLevelClient(
    RestClient.builder(
            new HttpHost("localhost", 9200, "http"),
            new HttpHost("localhost", 9201, "http")));

您可以使用它从 RestHighLevelClient 获取低级客户端:

RestClient lowLevelClient = client.getLowLevelClient();

对 elasticsearch 6.3 及更低版本执行以下命令:

Response response = client.getLowLevelClient().performRequest("GET", indexName+"/_count");

对于 elasticsearch 版本 6.3 到 6.5,执行以下操作:

Request request = new Request("GET", indexName+"/_count");
client.getLowLevelClient().performRequest(request);

将响应转换为字符串:

String responseBody = EntityUtils.toString(response.getEntity());

然后,您可以解析响应正文以获取计数值。

最新更新