在“ 城市 ” 上方发布的文档中,它不是json数组,而是json对象。如果可以更改文档结构,则可以将文档中的城市更改为对象数组
示例文件:
cities : [ { "name" :"saopaulo" "visit_count" :"2", }, { "name" :"riodejaneiro" "visit_count" :"1", }]然后,您需要将城市设置为嵌套在索引映射中的类型
"mappings": { "<type_name>": { "properties": { "cities": { "type": "nested", "properties": { "city": { "type": "string" }, "count": { "type": "integer" }, "value": { "type": "long" } } }, "date": { "type": "date", "format": "dateOptionalTime" }, "registry": { "type": "string" }, "state": { "type": "string" }, "traveler": { "type": "string" } } } }之后,您可以使用嵌套聚合来获取每个用户的城市计数。查询将在以下几行中显示:
{ "query": { "match": { "traveler": "patrick" } }, "aggregations": { "city_travelled": { "nested": { "path": "cities" }, "aggs": { "citycount": { "cardinality": { "field": "cities.city" } } } } }}


