B i M A P

Elasticsearch | How to solve too_many_clauses

elasticsearch logo


Set ES MAX_CLAUSE_COUNT


indices.query.bool.max_clause_count: 10240


Elasticsearch 預設的 Lucene BooleanQuery 的 clauses 長度限制為 1024,也就是說,查詢結果的欄位總合,不超過 1024 個,此限制主要是要避免 query 過大,造成使用過多 CPU 和 memory, 一般來說預設的 1024 就很夠用。


這一次筆者剛好遇到客戶,在查詢 windows event log 時,無法得到預期的查詢結果。雖然後來發現該原因,但原則上超過 1024 的情況也不多見,於是再繼續查源頭,後來也發現說,客戶在 winlogbeat 中多收了一些其他的 windows event module,因此觸發了這個限制,所以未來如果大家在 winlogbeat 中多加新 module,也需要注意此狀況。



聯絡我們快速上手



延伸閱讀
winstonlu的大頭照
ELK 達人

我們致力於 ELK 的各種應用,協助企業建置相關服務。我們也提供基於 ELK 的各種解決方案,有任何問題,歡迎加入我們的官方 Line,或來信詢問,期待與您面對面的機會。