Elasticsearch | How to solve too_many_clauses

瀏覽人次: 1104
2022-04-11 更新

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

聯絡我們快速上手

快速跳轉目錄

✦ 集先鋒 Bimap – 企業建置高速穩定的海量日誌分析平台✦

集中不同的結構化資料和非結構化日誌,並進行關聯性的大數據整合,客製化儀表版、自訂事件告警、機器學習等等,以滿足各種大數據的應用場景和解決方案。