如何在 Elasticsearch 中查找默认值/更改 search.allow_expense_queries

Ser*_*nov 0 elasticsearch

我想知道是否有一种方法可以查看 Elasticsearch 参数的默认值(例如在 Kibana 中),并在必要时通过 DevTools 的控制台或?部分search.allow_expensive_queries进行更改。environmentdocker-compose.yml

Kav*_*veh 6

默认search.allow_expensive_queries值设置为 true,如果你想阻止用户运行某些类型的昂贵查询,那么你可以将此设置添加到集群中:

PUT _cluster/settings
{
  "transient": {
    "search.allow_expensive_queries": "false"
  }
}
Run Code Online (Sandbox Code Playgroud)

要检查集群中是否设置了该设置,您可以调用此 API:

GET /_cluster/settings
Run Code Online (Sandbox Code Playgroud)

如果设置为 false 或 true,结果应如下所示:

{
  "persistent" : { },
  "transient" : {
    "search" : {
      "allow_expensive_queries" : ["false" or "true"]
    }
  }
}

Run Code Online (Sandbox Code Playgroud)

如果 API 部分未返回任何信息,transient则意味着该值设置为true