试试搜索一下吧

es 怎么使用Java Api进行大于2个字段的聚合,例如sql的 group by a,b,c

strglee 回复了问题 • 1 人关注 • 1 个回复 • 4296 次浏览 • 2018-06-15 11:04 • 来自相关话题

请教一个搜索结果的汇总统计的问题

wen 回复了问题 • 5 人关注 • 3 个回复 • 1550 次浏览 • 2018-06-15 10:26 • 来自相关话题

es怎么实现查询es中的2个type,2个type之间没有关系,实现全局搜索,用的是spring boot+spring-data-elasticsearch

wozuishuai 回复了问题 • 4 人关注 • 3 个回复 • 2417 次浏览 • 2018-06-15 10:07 • 来自相关话题

es5.1.2,cpu占用率高,节点失联,进程未挂

回复

lbx6z 发起了问题 • 1 人关注 • 0 个回复 • 2372 次浏览 • 2018-06-14 23:32 • 来自相关话题

Elasticsearch查询问题

laoyang360 回复了问题 • 2 人关注 • 1 个回复 • 1695 次浏览 • 2018-06-14 19:29 • 来自相关话题

elastic search 查询问题

laoyang360 回复了问题 • 2 人关注 • 1 个回复 • 2614 次浏览 • 2018-06-14 19:21 • 来自相关话题

elasticseach丢字段

回复

taowang7 发起了问题 • 1 人关注 • 0 个回复 • 1417 次浏览 • 2018-06-14 18:42 • 来自相关话题

elasticsearch大部分数据一段时间后丢失字段??

taowang7 回复了问题 • 1 人关注 • 1 个回复 • 5384 次浏览 • 2018-06-14 18:40 • 来自相关话题

invalid internal transport message format, got (0,0,0,a7), 偶尔会报一下。

yaobo 回复了问题 • 4 人关注 • 2 个回复 • 8889 次浏览 • 2018-06-14 17:54 • 来自相关话题

More_like_this使用分词器后居然查不出来

401825317 回复了问题 • 8 人关注 • 6 个回复 • 6217 次浏览 • 2018-06-14 17:34 • 来自相关话题

transport连接版本报错问题

yaobo 回复了问题 • 4 人关注 • 3 个回复 • 40876 次浏览 • 2018-06-14 17:26 • 来自相关话题

elasticsearch更新,排序

kennywu76 回复了问题 • 3 人关注 • 1 个回复 • 1684 次浏览 • 2018-06-14 16:17 • 来自相关话题

highlight 返回来的title 不全 看截图

qq731761942 回复了问题 • 2 人关注 • 2 个回复 • 2868 次浏览 • 2018-06-14 13:16 • 来自相关话题

elaseticsearch update all能实现么

strglee 回复了问题 • 2 人关注 • 1 个回复 • 3002 次浏览 • 2018-06-14 11:40 • 来自相关话题

ES5.3聚合内存溢出bug

yayg2008 发表了文章 • 1 个评论 • 4720 次浏览 • 2018-06-13 20:48 • 来自相关话题

有以下DSL
json<br /> {<br /> "size" : 0,<br /> "query" : { },<br /> "_source" : false,<br /> "aggregations" : {<br /> "aggData" : {<br /> "terms" : {<br /> "field" : "url",<br /> "size" : 200,<br /> "min_doc_count" : 1,<br /> "shard_min_doc_count" : 0,<br /> "show_term_doc_count_error" : false,<br /> "order" : [<br /> {<br /> "PV" : "desc"<br /> }<br /> ]<br /> },<br /> "aggregations" : {<br /> "PV" : {<br /> "cardinality" : {<br /> "field" : "userssid"<br /> }<br /> }<br /> }<br /> }<br /> }<br /> }<br />
目的是对用户访问的URL进行分组统计,按独立用户数来排序。
执行后,data节点频繁FGC,内存无法回收,随即OOM,然后data节点脱离,集群变为red。
最初以为是cardinality精度问题导致内存使用过多,随即将precision_threshold设置为100,再次执行,内存使用量确实少了很多,但是还是用到GB级别。为了确认是否是cardinality问题,去掉外层聚合,直接执行
json<br /> "aggregations" : {<br /> "PV" : {<br /> "cardinality" : {<br /> "field" : "userssid"<br /> }<br /> }<br /> }<br />
发现响应非常快,而且内存占用只有KB级别。
再次单独执行外部聚合,发现也非常快,于是猜测是order导致,将order去掉,果然,如丝般顺滑,再也没有OOM。
为了解决这种OOM,首先想到的是熔断器。默认indices.breaker.request.limit配置是60%。改成10%后,触发熔断,集群正常,但是多点几次之后,data还是出现OOM了。
于是逐步调试,发现每执行1次,内存就增加一点,熔断返回后并没有被回收,直到OOM。基本确定是这里的order导致内存泄露了。
就在此时,同事反馈在5.6不会有这个问题,于是去查release note,果然在[5.5的版本](https://www.elastic.co/guide/e ... 0.html)发现fix了这个问题。[问题描述](https://github.com/elastic/elasticsearch/pull/24941)。
这个bug的根本原因是:
<br /> terms aggregations at the root level use the global_ordinals execution hint by default.<br /> When all sub-aggregators can be run in breadth_first mode the collected buckets for these sub-aggs are dense (remapped after the initial pruning).<br /> But if a sub-aggregator is not deferrable and needs to collect all buckets before pruning we don't remap global ords and the aggregator needs to deal with sparse buckets.<br /> Most (if not all) aggregators expect dense buckets and uses this information to allocate memories.<br /> This change forces the remap of the global ordinals but only when there is at least one sub-aggregator that cannot be deferred.<br />
解决方案:
1,升级到5.5以上版本;

2,DSL增加"execution_hint":"map",属性。
```json
{
"size" : 0,
"query" : { },
"_source" : false,
"aggregations" : {
"aggData" : {
"terms" : {
"field" : "url",
"size" : 200,
"execution_hint":"map",
"min_doc_count" : 1,
"shard_min_doc_count" : 0,
"show_term_doc_count_error" : false,
"order" : [
{
"PV" : "desc"
}
]
},
"aggregations" : {
"PV" : {
"cardinality" : {
"field" : "userssid"
}
}
}
}
}
}