我有一组存储在 document.tags 和 document.fields.articleTags 中的标记。
这是我从两个命名空间获取所有标记的方法,但是如何将结果合并到ES的响应中的一个数组中?
{
"query" : {
"match_all" : { }
},
"size": 0,
"aggs" : {
"tags" : {
"terms" : { "field" : "tags" }
},
"articleTags" : {
"terms" : { "field" : "articleTags" }
}
}
}
结果
我得到了articleTags.buckets和tags.buckets中列出的标签。是否可以将结果交付到一个桶中?
{
"aggregations": {
"articleTags": {
"buckets": [
{
"key": "halloween"
}
]
},
"tags": {
"buckets": [
{
"key": "news"
}
答案 0 :(得分:0)
是的,您可以使用单个terms
聚合与脚本,而不是“加入”两个数组(即将它们加在一起),它是这样的:
{
"query" : {
"match_all" : { }
},
"size": 0,
"aggs" : {
"all_tags" : {
"terms" : { "script" : "doc.tags.values + doc.articleTags.values" }
}
}
}
请注意,您需要确保enable dynamic scripting才能使此查询生效。