You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看并修改Elasticsearch search.allow_expensive_queries默认值

查看search.allow_expensive_queries参数值

在Kibana的DevTools控制台执行以下请求,即可拿到包含默认值在内的全量配置:

GET _cluster/settings?include_defaults=true&filter_path=*.search.allow_expensive_queries

返回结果中defaults字段对应的取值就是参数默认值,Elasticsearch官方版本中该参数默认值为true,即默认允许执行wildcard、fuzzy、大跨度join类高开销查询。

修改search.allow_expensive_queries参数取值

方式1:通过DevTools控制台动态修改

该参数为集群级动态配置,修改后无需重启ES节点即可生效,支持两种生效范围:

  • 持久生效(集群全量重启后配置不丢失):执行以下请求,将取值替换为你需要的布尔值即可
PUT _cluster/settings
{
  "persistent": {
    "search.allow_expensive_queries": false
  }
}
  • 临时生效(集群重启后配置自动失效):将请求体中的persistent替换为transient即可
PUT _cluster/settings
{
  "transient": {
    "search.allow_expensive_queries": false
  }
}

方式2:通过docker-compose.yml配置固定值

在容器启动前将参数写入environment配置段即可,注意ES容器的环境变量命名规则:参数的点号替换为下划线、全大写、增加ES_前缀,对应参数的环境变量名为ES_SEARCH_ALLOW_EXPENSIVE_QUERIES,配置示例如下:

version: '3.8'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.14.3
    environment:
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
      # 配置search.allow_expensive_queries参数
      - ES_SEARCH_ALLOW_EXPENSIVE_QUERIES=false
    ports:
      - "9200:9200"

注意:多节点集群下,需要保证所有节点的该参数取值一致,避免出现查询行为异常。

内容的提问来源于stack exchange,提问作者Sergey Tsypanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 03:39:36