我创建了groovy脚本来计算新的字段值.然后我可以在查询中使用该脚本来使用script_fields参数计算新字段值.这是一个例子:
{
"query": {
"filtered": {
"query": {
"bool": {
"must": {"match_all": {}}
}
}
}
},
"script_fields":{
"my_field":{
"script_id":"my_field_calculator",
"lang" : "groovy",
"params": {}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用,我看到每个都有一个fields包含my_field在其中的对象的结果.完善.
现在我想使用术语聚合来获取这个新字段值的每次出现的计数,如下所示:
{
"query": {
"filtered": {
"query": {
"bool": {
"must": {"match_all": {}}
}
}
}
},
"script_fields":{
"my_field":{
"script_id":"my_field_calculator",
"lang" : "groovy",
"params": {}
}
}
"aggs": {
"counts_by_my_field": {
"terms": {
"field": "my_field"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
查询运行得很好,我仍然在每个字段中看到我的计算结果,但是aggregations对象包含一个键,里面counts_by_my_field …