更新时间:2024-11-29 GMT+08:00

Elasticsearch查询时出现hits.total不准确问题

问题背景与现象

相同的Elasticsearch查询语句在相同的查询条件下返回的hits.total数不一致(如:在1和92之间来回切换)。

原因分析

  1. 该问题为Elasticsearch社区疑难问题,问题单号:https://github.com/elastic/elasticsearch/issues/25603
  2. 社区提供两种规避方案:
    1. 查询时指定preference参数:_primary_first:优先在主分片上执行查询操作,但在高并发和大数量的场景下会影响查询性能。
    2. 查询语句中增加sort参数,按索引中的某个keyword字段进行排序。

解决方法

查询语句中增加sort参数,按索引中的某个keyword字段进行排序。针对需要保留评分排序的场景,需要业务侧逻辑判断。