不同键上的 Elasticsearch 聚合
Posted
技术标签:
【中文标题】不同键上的 Elasticsearch 聚合【英文标题】:Elasticsearch aggregation on distinct keys 【发布时间】:2017-01-06 19:16:31 【问题描述】:我想通过“类别”字段中的不同键来聚合我的文档。 这里有两个文件:
"date": 1470271301,
"categories":
"1": [blabla],
"2": [blala]
"date": 144343545,
"categories":
"1": [blabla],
"2": [coco]
"3": [rat, saouth]
类别映射:
"categories" :
"properties" :
"1" :
"type" : "long"
我想得到这样的东西:
"buckets" : [
"key" : "1",
"doc_count" : 2
,
"key" : "2",
"doc_count" : 2
"key" : "3",
"doc_count" : 1
在不改变我的文档映射的情况下,有没有一种好方法可以做到这一点?
【问题讨论】:
如果您发布类别的当前映射会很有帮助 @keety 映射发布 【参考方案1】:为此可以使用元字段_field_names。
如下例所示在此运行聚合将为您提供文档计数。
例子:
put test/test/1
"date": 1470271301,
"categories":
"1": ["blabla"],
"2": ["blala"]
put test/test/2
"date": 144343545,
"categories":
"1": ["blabla"],
"2": ["coco"],
"3": ["rat", "saouth"]
POST test/_search
"size": 0,
"aggs":
"field_documents":
"terms":
"field": "_field_names",
"include" : "categories.*",
"size": 0
结果:
"aggregations":
"field_documents":
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
"key": "categories",
"doc_count": 2
,
"key": "categories.1",
"doc_count": 2
,
"key": "categories.2",
"doc_count": 2
,
"key": "categories.3",
"doc_count": 1
]
【讨论】:
以上是关于不同键上的 Elasticsearch 聚合的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch:Elasticsearch 中的父级和兄弟级聚合
Elasticsearch:Elasticsearch 中的父级和兄弟级聚合