如何检查Elasticsearch中的索引是否为空?

问题描述:

在一个java应用程序中,我想知道我的索引是否为空(包含零个文档或至少包含一个文档)。如何检查Elasticsearch中的索引是否为空?

我觉得,计数所有文件(通过发送大小为0的搜索请求)是不可读的,可能不是最佳的性能。

是否有专门的方法来检查索引是否为空?

你可以做到这一点与下面的Java代码:

IndicesStatsResponse indicesStatsResponse = client().admin().indices().prepareStats(INDEX).get(); 

indicesStatsResponse.getIndices().get(INDEX).getTotal().docs.getCount()); 

其中clientorg.elasticsearch.client.ClientINDEXString,代表了指数的名称。

有趣的是,一些简单的测试表明,平均来说,这个请求比做MatchAllDocsQuery要快20%。但我不确定这是否是一个正确的测试。也许我会稍后做一个适当的