我在索引类型(ES 2.4.4)中有大量文档(大约 34719074 个文档)。在搜索时,当“from”参数较高(大于 100000,“size”参数恒定)时,我的 ES 集群似乎受到很大影响(搜索延迟、CPU 使用率、JVM 内存和负载平均值)。有什么具体原因吗?我的查询看起来像:
{
"explain": false,
"size": 100,
"from": <>,
"_source": {
"excludes": [],
"includes": [
<around 850 fields>
]
},
"sort": [
<sorting from an string field>
]
}
这是深度分页的经典问题。您可以阅读Elasticsearch 中的分页链接。本质上,在跳过 100000 个文档后获取下一组文档将是一项内存密集型任务,因为要获得 100000+ 个文档的结果集,需要从每个分片中获取 100000+ 个文档然后进行处理(排序、排序等)。对较小的结果集进行排名/排序比在较大的结果集上进行排序花费的时间更少。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句