Elastic Search版本7.17 Java Rest API使用queryBuilder返回错误的totalEl



我们目前正在将系统从ElasticSearch 6.8.8升级到ElasticSearch 7.17。当我们使用JavaRest API运行可分页查询时,结果是不正确的。例如,在6.8.8版本中,如果我们使用查询数据,并请求页面大小为10的页面2,则查询将返回页面2上的10项,并为我们提供10000条记录的totalElement,这是正确的。当我们在7.17版本上运行这个完全相同的查询时,它在第2页上返回了10个项目,但只给我们一个10的totalElement,而不是正确的数字。我们需要正确的数字,这样我们的gridview才能正确处理分页。ElasticSearch 7.17版本中是否缺少设置?

Elasticsearch在ES 7.X中的所有搜索中实现了Track_total_hits选项。

通常,如果不访问所有匹配项,就无法准确计算总命中数,这对于匹配大量文档的查询来说代价高昂。track_total_hits参数允许您控制如何跟踪总点击数。考虑到通常具有命中次数的下界就足够了;至少有10000次点击";,默认值设置为10000。这意味着请求将准确地统计总点击次数,最高可达10000次。如果在某个阈值之后不需要准确的点击次数,那么加快搜索速度是一个很好的折衷方案。

因此,要强制ES计算所有命中的文档,应将Track_total_hits设置为true。有关更多信息,您可以在此处查看ES官方文档页面。

最新更新