我安装了Elasticsearch 16GB的内存.我开始使用聚合,但在尝试发出以下查询时遇到“
java.lang.OutOfMemoryError:
Java堆空间”错误:
POST /test-index-syslog3/type-syslog/_search { "query": { "query_string": { "default_field": "DstCountry","query": "CN" } },"aggs": { "whatever": { "terms": { "field" : "SrcIP" },"aggs": { "destination_ip": { "terms": { "field" : "DstIP" },"aggs": { "port" : { "terms": { "field" : "DstPort" } } } } } } } }
query_string本身只返回1266次点击,所以我对OOM错误感到有点困惑.
我错误地使用聚合吗?如果没有,我该怎么做才能解决这个问题?
谢谢!
您正在将整个SrcIP,DstIP和DstPort字段加载到内存中以便在它们上进行聚合.这是因为Elasticsearch将整个字段取消反转,以便能够快速查找给定其ID的字段的文档值.
如果您要在很大程度上聚合一小组数据,则应该是look into using docvalues.然后,文档的值以一种方式存储,以便在给定文档ID的情况下轻松查找.它有更多的开销,但是这样你就可以把它留给操作系统的字段缓存来将相关页面放在内存中,而不必加载整个字段.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。