相关疑难解决方法(0)

Elasticsearch 2.1:结果窗口太大(index.max_result_window)

我们从Elasticsearch 2.1检索信息,并允许用户通过结果进行分页.当用户请求高页码时,我们收到以下错误消息:

结果窗口太大,+大小必须小于或等于:[10000]但是[10020].有关请求大型数据集的更有效方法,请参阅scroll api.可以通过更改[index.max_result_window]索引级别参数来设置此限制

弹性文档说这是因为高内存消耗和使用滚动API:

高于的值会占用每次搜索和执行搜索的每个分片的大量堆内存.保留此值是最安全的,因为它是使用滚动API进行任何深度滚动https://www.elastic.co/guide/en/elasticsearch/reference/2.x/breaking_21_search_changes.html#_from_size_limits

问题是我不想检索大型数据集.我只想从结果集中非常高的数据集中检索切片.滚动文档也说:

滚动不适用于实时用户请求https://www.elastic.co/guide/en/elasticsearch/reference/2.2/search-request-scroll.html

这给我留下了一些问题:

1)如果我使用滚动api向上滚动到结果10020(并忽略10000以下的所有内容)而不是对结果10000-10020进行"正常"搜索请求,那么内存消耗是否真的会降低(如果是这样的话)

2)似乎滚动API对我来说不是一个选项,但我必须增加"index.max_result_window".有人对这个有经验么?

3)还有其他选择来解决我的问题吗?

elasticsearch

81
推荐指数
3
解决办法
6万
查看次数

标签 统计

elasticsearch ×1