在我想知道的java应用程序中,我的索引是否为空(包含零文档或包含至少一个文档)。
我有一种感觉,即计算所有文档(通过发送大小为0的搜索请求)是不可读的,并且可能不是最佳的性能。
是否有专门的方法来检查索引是否为空?
答案 0 :(得分:1)
您可以使用以下Java代码执行此操作:
IndicesStatsResponse indicesStatsResponse = client().admin().indices().prepareStats(INDEX).get();
indicesStatsResponse.getIndices().get(INDEX).getTotal().docs.getCount());
其中client
为org.elasticsearch.client.Client
,INDEX
为String
,代表索引的名称。
有趣的是,一些简单的测试显示,平均而言,此请求比执行MatchAllDocsQuery
快20%。但我不确定这是否是正确的测试。也许我以后会做一个合适的