在为文档建立索引之前,我想检查索引是否为空。这意味着,我只想获取所有文档的数量。如果返回0,我想继续执行其他操作。

我正在将Elastic Search 6.2.3版本与RestHighLevelClient一起使用。

最佳答案

只需运行大小等于0的搜索查询即可。然后您就可以访问总命中数,这意味着索引中有多少个文档。

SearchRequest searchRequest = new SearchRequest("index_name");
SearchSourceBuilder searchBuilder = new SearchSourceBuilder();
searchBuilder.query(QueryBuilders.matchAllQuery());
searchBuilder.size(0);
searchRequest.source(searchBuilder);

SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
SearchHits hits = searchResponse.getHits();
long totalHits = hits.getTotalHits();
if(totalHits == 0) {
    // proceed
}

09-11 20:02