找到问题的解决办法了么?

数组类型聚合

Elasticsearch | 作者 elasticStack | 发布于2018年11月13日 | 阅读数:4914

1. es版本为5.6.9 
2.agent_ip是text类型, internal_ip是数组, 但是mapping是text + keyword
3.先按照agent_ip聚合, 然后再子聚合interval_ip
出现的问题:
    当interval_ip数组中包含两个元素时(及以上), 比如都为 [a, b], [a, b], [a,b]....... , 那么在聚合第二层的时候, es分别会把a聚合一遍, b聚合一遍。  那么doc_count值就是double了。
 
请问有没有什么可以避免的
聚合结果.jpg
已邀请:

elasticStack - 90后it大数据男

赞同来自:

聚合.png

 

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

看了你的问题和相关讨论,你的子聚合里面是数组类型,2个或者多个元素会分别聚合。

一种思路:结合你的业务场景,去掉第二层聚合结果,
二种思路:取最外层值。
你把你具体需求说一下吧

要回复问题请先登录注册