java - 如何使用 JAVA High Level Rest Client 获取索引中存在的文档网总数
问题描述
我想知道索引中存在的所有文档的计数,是否可以使用 java 高级休息客户端 COUNT API 获取计数?
解决方案
您可以使用cat count或Count API获取索引中所有文档的计数。如果您使用的是 elasticsearch 版本 6.6 及更高版本,则可以点击此链接以使用 Java High Level REST Client 的 Count API 获取计数。
如果您使用的是旧版本,则必须使用 Java Low Level REST Client 来获取文档计数。
因为RestHighLevelClient建立在 Low Level REST Client 之上。
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());
然后你可以解析responseBody来获取计数值。
推荐阅读
- c++ - 如何使用 ArrayFromJSON 创建日期箭头数组
- r - 闪亮的测验问题
- matlab - 使用 Simscape 操纵器进行计算扭矩控制
- git - git repo 中缺少一行
- c# - ASP.Net HttpPostedFileBase 缺少参考
- javascript - npm 的 docker-compose up 失败
- python - django url 可以在开头包含固定路径吗?
- android - 如何使用绑定适配器从 ImageView 中的 drawable 加载动画 gif?
- java - 无法为元素 Appenders 调用类 org.apache.logging.log4j.core.config.AppendersPlugin 中的工厂方法:java.lang.NullPointerException
- swift - 计算两个坐标之间的距离并将其显示在 UITableViewCell 的标签内