[英]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.