我想在“类别”字段中的不同键上汇总我的文档.
这是两个文件:
这是两个文件:
"date": 1470271301,"categories": { "1": [blabla],"2": [blala] } "date": 144343545,"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 }
有没有一个很好的方法来做这个而不改变我的文档的映射?
解决方法
可以使用元字段
_field_names来实现此目的.
如下例所示,在此处运行聚合将为您提供文档计数.
示例:
put test/test/1 { "date": 1470271301,"categories": { "1": ["blabla"],"2": ["blala"] } } put test/test/2 { "date": 144343545,"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",{ "key": "categories.2",{ "key": "categories.3","doc_count": 1 } ] } }