Elasticsearch:使用 count API 来获得所有文档的个数

2023年6月12日   |   by mebius
tgcode

在我开始使用 Elasticsearch 的时候,我希望获得给定查询的文档总数。比如我们想对数据进行分页显示。从Elasticsearch7.0之后,为了提高搜索的性能,在 hits 字段中返回的文档数有时不是最精确的数值。Elasticsearch 限制了最多的数值为10000。我们知道 Search API 提供的计数不准确,但后来我发现我可以通过 “track_total_hits” 参数获得这个结果。具体可以参考文章 “Elasticsearch:如何在搜索时得到精确的总 hits 数

然而,通过进一步研究,我发现了一种更简单的方法来获取查询的实际文档数。

使用 Count API,我可以从查询中获取文档总数。

GET my_index/_count
{
  "query": {
   "range": {
     "year": {
       tgcode"gte": 1991
     }
   }
  }
}

在我们的示例中,我们将获得 1991 年之后发布的文档总数。

{
  "count": 634,
  "_shards": {
    "total": 1,
    "successful": 1,
    "tgcodeskipped": 0,
    "failed": 0
  }
}

如你所见,响应大小紧凑,如果使用 Search API,它的结果则不同。另外,

%title插图%num

这很好,因为通过网络传输的数据包较小,这对成本有积极影响。

文章来源于互联网:Elasticsearch:使用 count API 来获得所有文档的个数

相关推荐: Kibana:调试 Kibana 仪表板

作者:Carly Richmond Kibana 仪表板允许你在 Elasticsearch 中索引的数据之上快速轻松地构建可视化。 然而,Elasticsearch 上的 UI 抽象可能会导致诊断单个面板中的性能问题变得棘手 —— 尤其是对于习惯于使用调试器…

Tags: