ElasticSearch中的“ from”参数是否会影响ElasticSearch集群?

时间:2018-11-14 06:30:11

标签: elasticsearch lucene

我有大量的索引类型的文档(大约34719074个文档)(ES 2.4.4)。在搜索过程中,当“ from”参数很高(大于100000,“ size”参数不变)时,我的ES群集似乎影响很大(搜索延迟,CPU使用率,JVM内存和平均负载)。有什么具体原因吗?我的查询如下:

 {
         "explain": false,
         "size": 100,
          "from": <>,
            "_source": {
                "excludes": [],
                "includes": [
                    <around 850 fields> 
                ]
            },
            "sort": [
            <sorting from an string field>
            ]
}

1 个答案:

答案 0 :(得分:0)

这是深度分页的经典问题。您可以阅读pagination in Elasticsearch上的链接。从本质上讲,在跳过100000个文档后获取下一组文档将是一项内存密集型任务,因为要获得100000+个文档的结果集,需要从每个分片中提取100000+个文档,然后进行处理(排序,排序等)。对较小的结果集进行排名/排序所花的时间要比对较大的结果集进行排序所花费的时间短。