簡體   English   中英

如何使用過濾器查詢優化彈性搜索aggs

[英]how to optimize elastic search aggs with filter query

當我嘗試運行此查詢時,elasticsearch無法回答,並且發生大量緩存逐出(與字段緩存有關)。

我不想在此查詢中緩存任何字段,因為這是一個分析查詢,我每天只運行一次。 有什么辦法可以在不使用字段緩存的情況下獲取此摘要。 我嘗試了doc值,但需要45秒或更長時間。 請期待您的建議。

堆內存:30GB
ES版本1.3.1
索引大小:350 GB

{  
   "query": {
      "filtered": {
         "filter": {
            "bool": {
               "must": [
                  {
                     "term": {
                        "type": "161"
                     }
                  },
                  {
                     "term": {
                        "cat": "Math"
                     }
                  }
               ]
            }
         }
      }
   },
   "aggs": {
      "tepo": {
         "terms": {
            "field": "tepo"

         }
      }
   }
}            

您將需要使用doc值或字段數據緩存,否則將無法進行聚合。 由於該查詢不是很頻繁,因此建議對該查詢禁用過濾器緩存。

   "filter" : {
        "term" : {
            "cath" : "Math",
            "_cache" : false
        }
    }

這樣就不會生成過濾器位集緩存,您可以在上面保存一些內存。 鏈接-http: //www.elasticsearch.org/guide/zh-CN/elasticsearch/reference/current/query-dsl-term-filter.html#_caching_18

另一種方法是限制主存儲器中的現場數據緩存量,這樣您就可以確保現場數據緩存不會被主存儲器所占用。LINK- http://www.elasticsearch.org/guide/zh/ elasticsearch / guide / current / _limiting_memory_usage.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM