身安不如心安,屋宽不如心宽 。

es7.6.2 排序时间过长问题

Elasticsearch | 作者 JaydenRansom | 发布于2021年08月18日 | 阅读数:1434

数据量大概在400w,不带任何过滤条件,仅用一个字段降序排序。
常规返回时间在10ms之内;如果指定了"track_total_hits":true,速度变成了500-800ms,有时还会超过1s,请问有大佬遇到过这个问题么
已邀请:

Charele - Cisco4321

赞同来自:

有没有可能是这种情况,你的索引是按这个字段排过序的。所以你取topN时很快。
当你需要track_total_hits的时候,它要统计所有文档数,所以会慢

xieqiao

赞同来自:

因为默认有size限制,所以不需要扫描所有segment,仅返回TopN。
如果需要返回总数据,有两个思路:
1. 业务是否可以降级,使用返回的hits值,最大为size的限定大小。
2. 单独调用一次count API,将其缓存,之后一段时间复用这个值,后续search不指定track_total_hits:true,保证性能

要回复问题请先登录注册