如何在弹性搜索查询中添加max_result_window

问题描述

我的查询在下面可以正常工作。我的查询很大,需要显示,因此我将示例查询放在下面

es.search(index="data",body={'query': {'match' : {'professor.contactName': 'Steve'}}})

我需要在我的身体查询添加'max_result_window':1000

es.search(index="data",body={'max_result_window':1000,'query': {'match' : {'proffessor.contactName': 'Steve'}}})

我收到“ RequestError:RequestError(400,'parsing_exception','[max_result_window]中VALUE_STRING的未知键。')“

解决方法

这是一个索引级别设置,您可以通过更新索引设置来对其进行更改,为此您需要关闭索引,使用下面的有效负载和PUT方法命中端点http://<es-host>:9200/<index-name>/_settings,然后再次打开索引。

{
  "index.max_result_window": 1000
}

但是不建议采用这种方式来更新max_result_window,并且official doc中提到了更好的选项,例如scrollsearch_after

,

只需参考此put_settings

我认为您需要使用put_settings方法。尝试以下一项。

es.indices.put_settings(index='data',body={'index' : 
                             {'max_result_window':1000}})