Lucene:为什么搜索成本会随着页面的增加而增加?

时间:2014-03-25 09:50:40

标签: lucene elasticsearch

我正在为每台机器使用带有1G缓存的ElasticSearch集群。我将搜索者配置为5000 / perpage。

当我搜索第3页时,它花费大约400毫秒。但是当我搜索第300页时,成本增加到超过5000毫秒!在这种情况下,大约60%的缓存是免费的。

为什么费用增加了10倍以上?

1 个答案:

答案 0 :(得分:8)

为了到目前为止的页面,Elasticsearch必须检索所有以前的页面,只是为了在最后丢弃它们。使用from: 1000, size: 100进行搜索相当于使用from: 0, size: 100100进行搜索,只需获得最后100个结果。这也意味着,必须对每个文档进行评分,这是一项潜在的昂贵操作。

最近有一项优化可以改善这种情况下的效果,当您使用scroll search时,请参阅此github issue