31

如果在 elasticsearch 中使用query_string 并在大型数据集上进行不幸的查询,则几乎可以使集群崩溃,并且可能需要很长时间才能完成查询。如果您允许用户指定任意查询字符串,这可能是一个严重的问题。

那么,有没有办法限制查询所需的时间和/或资源?如果您可以告诉 elasticsearch 在 10 秒后自动中止查询,那将有很大帮助。

4

1 回答 1

19

您可以在请求正文uri request中传递搜索“超时” 。如果在收集所有结果之前搜索请求超时,将返回部分结果。

这是一个 10 秒的 uri 请求示例(单位为毫秒):

http://localhost:9200/_search?timeout=10000

如果您将超时设置得足够低,则返回的 json 将显示“timed_out”:true。

于 2013-08-23T14:49:27.283 回答