核心含义与作用
这行代码是 Elasticsearch Java 客户端(Rest High Level Client)中的关键配置,用于让 Elasticsearch 返回精准的搜索结果总命中数,而非默认的近似值。
先理解默认行为(为什么需要这个配置)
Elasticsearch 为了提升查询性能,默认不会返回精准的总命中数:
当匹配的文档数较少(比如 < 10000 条),可能返回近似值;
当匹配的文档数超过 10000 条时,默认只返回 10000(或显示 10000+),不会计算真实的总条数。
这种设计是为了避免大数据量下,全量统计总命中数带来的性能开销。
trackTotalHits(true) 的具体效果
调用这个方法并传入 true,会强制 Elasticsearch:
忽略默认的 10000 条限制;
精准计算并返回本次搜索匹配的所有文档总数;
可以通过 searchResponse.getHits().getTotalHits().value 获取这个精准数值。