一尘不染

使用Elasticsearch计算文档数

elasticsearch

如果要计算索引(Elasticsearch的索引)中的文档数,则有​​(至少?)两种可能性:

  • 直接count

POST my_index / _count

应该返回中的文档数my_index

  • 使用search

在这里,可以将count用作search_type或其他类型。无论哪种情况,都可以从现场提取总计数['hits']['total']

我的问题是:

  • 不同方法之间有什么区别?我应该选哪一个?

  • 我提出这个问题是因为根据所选择的方法,我会遇到不同的结果。我现在正在调试问题,此问题突然出现。


阅读 560

收藏
2020-06-22

共1个答案

一尘不染

可能_count会更快一些,因为它不必执行带有排名和结果获取的完整查询,并且只需返回大小即可。

了解更多有关如何获得不同结果的知识会很有趣。为此,我需要更多信息,例如您要发送的确切查询以及索引上是否正在进行任何索引。

但是假设您执行以下操作

  1. 索引一些文件
  2. 刷新索引

_search_count(匹配所有查询)应返回相同的总数。如果没有,那将很奇怪。

2020-06-22