我想执行术语聚合,并且在执行脚本操作后,在每个结果桶中都会获得命中字段。
例如,如果这些是文件:
{"age": 15, "firstName": "Dana", "lastName": "Miller"}
{"age": 15, "firstName": "Michelle", "lastName": "Bob"}
{"age": 32, "firstName": "Mary", "lastName": "Smith"}
{"age": 32, "firstName": "Anna", "lastName": "Taylor"}
聚合是“年龄”字段,脚本是: “return'doc ['firstName'] +''+ doc ['lastName']”
结果应该是:
桶1(年龄:15):
Buchet 2(32岁):
这在弹性搜索中是否可行?
修改:
此外,我正在寻找一种方法来在桶中的多个命中运行脚本。 例如,如果我们使用上面的文档和年龄字段的聚合术语,我可以通过以下方式获得桶中命中的结果吗?
第1桶(15岁):
Bucket2(32岁):
ES可以吗?
谢谢。答案 0 :(得分:1)
我猜以下查询可以帮助您。
{
"size": 0,
"aggs": {
"group By age": {
"terms": {
"field": "age"
},
"aggs": {
"top hits": {
"top_hits": {
"script_fields": {
"Name": {
"script": "doc['firstName'].value + ' ' + doc['lastName'].value "
}
}
}
}
}
}
}
}
希望这会有所帮助!!