0%

[Elasticsearch] 解決 max_clause_count is set to 1024 的錯誤

前言

Elasticsearch 預設的 Lucene BooleanQuery 的 clauses 長度限制為 1024, 不只有 bool query, 其他的 query 也幾乎會在內部被轉換為 Lucene 的 BooleanQuery. 此限制主要是要避免 query 過大,造成使用過多 CPU 和 memory, 一般來說預設的 1024 就很夠用,但是如果出現 max_clause_count is set to 1024 這個錯誤訊息,代表 query 長度超過限制,可以透過以下的設定來做調整,不過要注意將此限制調高的話,可能會降低 performance 或是產生記憶體相關問題。

設定

若要調整 max_clause_count,在 <ES_DIR>/config/elasticsearch.yml 中加上以下設定:

1
indices.query.bool.max_clause_count: 10240

接著重啟 Elasticsearch 就可以了~

參考資料