defaultsearch在弹性搜索中的行为

时间:2016-03-10 10:44:53

标签: elasticsearch

我试图了解以下弹性搜索设置的工作原理:

dir

我尝试在群集上配置此值,但实际上我无法将查询所需的时间限制为所需的级别。发生超时并且查询停止但仍然比预期持续更长时间。似乎search.default_search_timeout 值与实际发生的超时之间存在某种关系,但它不像是线性关系,或者无论如何我不明白它是如何工作的。我对default_search_timeout 2m配置进行了15s个持续查询。

关于如何更好地理解这个主题的任何想法?

我只需要限制持久的kibana查询来重载我的弹性搜索群集。

非常感谢其他想法。

注意:使用elasticsearch版本default_search_timeout并通过REST api应用设置(在瞬态组中)

1 个答案:

答案 0 :(得分:1)

当搜索从一个段移动到另一个段时,将检查超时值。即在一个段的末端边界。超过超时值时,将在此扫描期间取消

因此,如果你有一个大片段,让我们说搜索扫描第一段直到结束需要2米,那么搜索将在2米时被取消

还有另一种设置可以克服此行为。引用ES文档。 Search Timeout & Cancellation

Searches can be cancelled using standard task cancellation mechanism. By default, a running search only checks if it is cancelled or not on segment boundaries, therefore the cancellation can be delayed by large segments. The search cancellation responsiveness can be improved by setting the dynamic cluster-level setting search.low_level_cancellation to true. However, it comes with an additional overhead of more frequent cancellation checks that can be noticeable on large fast running search queries. Changing this setting only affects the searches that start after the change is made.