【发布时间】:2019-06-21 17:26:22
【问题描述】:
有没有办法计算嵌套类型中的特定值(例如services.service: "map")在所有文档中出现的次数?
文档可能如下所示:
{
"services": [
{
"service": "map",
"version": 2,
"provider": "none"
},
{
"service": "map",
"version": 0,
"provider": "none"
},
{
"service": "language",
"version": 2,
"provider": "none"
}
],
"date": "2019-04-26T19:17:20.197Z"
}
使用此映射:
{
"mappings": {
"stat": {
"properties": {
"services": {
"type": "nested",
"properties": {
"version": {
"type": "keyword"
},
"provider": {
"type": "keyword"
},
"service": {
"type": "keyword"
}
}
},
"date": {
"type": "date"
}
}
}
}
}
我尽可能返回每个文档的计数(请参阅下面的查询),但我更喜欢从我的所有文档中获取最终出现次数的总和。
{
"query": {
"nested": {
"path": "services",
"query": {
"match" : {
"services.service" : "map"
}
},
"inner_hits": {
"_source" : false,
"docvalue_fields" : ["services.service.keyword"]
}
}
}
}
【问题讨论】:
标签: elasticsearch