"把" "来自"增加

时间:2015-08-19 08:24:53

标签: elasticsearch

鉴于我的查询将返回100,000个匹配记录,但对于每个页面,我只想返回100条记录:

{
    "from": 0,
    "size": 100,
    //and here goes the usual stuff
}

假设查询的复杂性是一致的,我观察到当"来自"增加,处理和产生产量所需的时间也将显着增加。

如果我从第一个记录开始,所花费的时间大约是100毫秒++,但是如果它从让我们说的32,188开始,那么所用的时间会增加一倍或者更长到300毫秒++。

这是预期的行为吗?可以做些什么来改善和缩短所花费的时间?

1 个答案:

答案 0 :(得分:2)

是的,这绝对是正常行为。您遇到的问题称为enter image description here。您应该只对前几页使用from/size,但不要在结果中导航太远。这样做的原因是,您需要检索的结果越多,需要检索更多的结果只返回一些。最糟糕的情况是检索100个结果的最后一页。在这种情况下,需要从所有分片中检索所有100K文档(用于排序和评分),然后只返回前100个匹配文档。

如果您需要查看所有文档,最好的方法是使用"deep paging"