elasticsearch multi_query检索异常


ElasticSearch的multiMatch方法,输入字段过长时,报如下错误,怎么解决?

检索语句:
Get XXXX.XXXXX/_search
{
  "query":
  {
    "bool" : {
      "must" : [
        {
            "multi_match" : {
              "query" : "患者群级:设定匹配规则(如:年龄介于50~70岁之间)① 设定锁定期间和可访问用户 ② 在锁定期间内只允许指定用户独占一般检索,被其他用户锁定不可见① 非公开研究特定期间内可以访问 ② 不限期间/指定期间?可访问锁定期间内的研究",
              "type" : "best_fields",
              "operator" : "OR"
            }
        }
      ]
    }
  }
}

异常内容:
{
  "error": {
    "root_cause": [
      {
        "type": "too_many_nested_clauses",
        "reason": "Query contains too many nested clauses; maxClauseCount is set to 6553"
      }
    ],
    "type": "search_phase_execution_exception",
    "reason": "all shards failed",
    "phase": "query",
    "grouped": true,
    "failed_shards": [
      {
        "shard": 0,
        "index": "se_sbdw.big_data",
        "node": "fwPa-aZpQCiainE4LDtCrw",
        "reason": {
          "type": "too_many_nested_clauses",
          "reason": "Query contains too many nested clauses; maxClauseCount is set to 6553"
        }
      }
    ],
    "caused_by": {
      "type": "too_many_nested_clauses",
      "reason": "Query contains too many nested clauses; maxClauseCount is set to 6553",
      "caused_by": {
        "type": "too_many_nested_clauses",
        "reason": "Query contains too many nested clauses; maxClauseCount is set to 6553"
      }
    }
  },
  "status": 500
}

修改下配置,max…

解决方式在配置文件 Elasticsearch.yuml中配置

index.query.bool.max_clause_count: 10240

设置最大限制bool查询的条数。过多会导致性能比较慢。