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,也需要注意此狀況。