我有一个内部对象的映射,如下所示:
{
"mappings": {
"_all": {
"enabled": false
},
"properties": {
"foo": {
"name": {
"type": "string",
"index": "not_analyzed"
},
"address": {
"type": "object",
"properties": {
"address": {
"type": "string"
},
"city": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
}
}
当我尝试以下聚合时,它不会返回任何数据:
post data:*/foo/_search?search_type=count
{
"query": {
"match_all": {}
},
"aggs": {
"unique": {
"cardinality": {
"field": "address.city"
}
}
}
}
当我尝试放置字段city或address.city时,聚合返回零,但是如果我放置foo.address.city,则是当我通过elasticsearch得到正确的响应时。这也会影响木瓜的行为
任何想法为什么会这样?我看到有一个mapping refactoring可能会影响这一点。我使用的是Elasticsearch 1.7.1版
要对此进行补充,我可以在搜索查询中使用相对路径,如下所示,它可以正常工作:
"query": {
"filtered": {
"filter": {
"term": {
"address.city": "london"
}
}
}
}
最佳答案
似乎是同样的issue。
当类型名称和字段名称相同时,可以看到此信息。
关于elasticsearch - Elasticsearch聚合-无法执行对对象的聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32223744/