【发布时间】:2019-09-09 08:11:28
【问题描述】:
我有一个“部门”字段,它是一个列表: { “部门”:[“食品服务”、“软件开发”、“制造”、“部署”] }'
我想聚合以“d”开头的“部门”的元素。即,来自所有记录的部署。
我能够找到具有一个带有前缀“d”的元素但无法聚合它们的记录。相反,我在查询前缀“d”后返回的记录中汇总了“部门”的所有元素。
{
"query": {
"bool": {
"filter": {
"match_phrase_prefix": {
"Departments": {"query": "a"}
}
}
}
},
"aggs" : {
"all_locations" : {
"terms" : { "field" : "Departments" }
}
}
}
例如,如果我总共有 4 条记录,其中“部署”出现在 1 条中,那么我想要:
部署:1
但我实际上得到的是该记录中存在“部署”的所有元素的频率。
部署:1, 食物:1, 服务:1、 软件:1, 发展:1, 制造:1
【问题讨论】:
标签: elasticsearch elasticsearch-aggregation match-phrase