【发布时间】:2020-07-21 00:35:07
【问题描述】:
我需要一个聚合查询来获取包含我所有根文件夹的存储桶。我的 elasticsearch 中的所有文档都有一个名为 path 的字段,我在其中存储了一个包含文档所在路径的数组(例如 path=[1.3., 1.2.4, 5., 11] )。
如果我使用普通术语聚合
"terms": {
"field": "path.keyword"
}
不幸的是,我得到了所有独特的路径:
"buckets" : [
{
"key" : "1.3."
"doc_count" : 6
},
{
"key" : "11."
"doc_count" : 3
},
{
"key" : "5."
"doc_count" : 3
},
{
"key" : "1.2.4."
"doc_count" : 1
}
]
我尝试使用无痛脚本解决它
"terms": {
"script": "doc['path.keyword'].value.substring(0, doc['path.keyword'].value.indexOf('.') )"
}
但是我只得到路径数组的最后一个元素
"buckets" : [
{
"key" : "1",
"doc_count" : 7
},
{
"key" : "11",
"doc_count" : 3
}
]
如何只获取根文件夹?
【问题讨论】:
-
你能添加一个例子来说明你的输出是什么样的吗?谢谢!
标签: elasticsearch elasticsearch-aggregation elasticsearch-painless