2014-11-21 26 views
0

所使用的術語過濾器:期限濾波器導致存儲器穗急劇

curl -XGET 'http://localhost:9200/my-index/my-doc-type/_search' -d '{ 
    "filter": { 
    "term": { 
     "void": false 
    } 
    }, 
    "fields": [ 
    [ 
     "user_id1", 
     "user_name", 
     "date", 
     "status", 
     "q1", 
     "q1_unique_code", 
     "q2", 
     "q3" 
    ] 
    ], 
    "size": 50000, 
    "sort": [ 
    "date_value" 
    ] 
}' 
  • void字段是boolean字段。
  • 索引商店大小爲504mb。
  • elasticsearch setup只包含一個節點,索引 只包含一個分片和0個副本。彈性搜索 的版本是0.90.7
  • 上面提到的字段只是前8個字段。我們執行的實際的 術語過濾器有350個字段提到。

雖然商店大小隻有504mb,但我們注意到內存大約增加2-3gb。

多次運行查詢似乎不斷增加內存。

有人可以解釋爲什麼會出現這種內存尖峯?

回答

0
  1. 這是一個很老的版本Elasticsearch
  2. 的你在一個返回50,000條記錄得到
  3. 排序的50K記錄
  4. 你的文件是相當大 - 350場。

您是否可以返回更少數量的記錄?然後通過他們的頁面? Scan and Scroll可以幫助你。

目前還不清楚您是否對單個字段進行了索引 - 這可能有助於從磁盤讀取_source可能會導致內存開銷。

+0

與過濾器相匹配的實際記錄只有17,000個。這是爲了導出功能,所以分頁不會有幫助。 – Ajay 2014-11-21 09:42:06

+0

商店規模與我們遇到的高峯之間的關係如何? – Ajay 2014-11-21 09:49:36

+0

返回的17k條記錄是一個很大的數字。對於商店大小和秒殺之間的關係,請參閱我的回答中的第二段。 – 2014-11-21 09:54:09