Q:有两个人掉到陷阱里了,死的人叫死人,活人叫什么?

es 中keyword查询构建bitSet成本

Elasticsearch | 作者 zybcn | 发布于2024年09月25日 | 阅读数:3837

各位大佬,es使用term查询,会将召回的数据构建bitSet,这个bitSet是必须操作,线上业务给状态码建立了keyword,但是线上大部分的状态是1,每个分片中数据超过3千万,这样构造bitSet会不会很慢,这个大家有怎么看呢
已邀请:

Fred2000 - 与其抱怨世界,不如改变自己

赞同来自: zybcn

Elasticsearch 使用 term 查询时,构造 BitSet 是为了快速筛选符合条件的文档。在你的例子中,大部分文档的状态码为 1,这意味着在每个分片中会有非常多的文档满足 term 查询条件。如果每个分片有数千万条数据,构建一个包含大量匹配文档的 BitSet 可能会耗费大量内存和计算资源。对于这种高命中率的查询,BitSet 的构建时间可能会显著延长,导致查询延迟增加。

要回复问题请先登录注册