如何解决如何在Elastic Search中聚合脚本字段?
计算类别是查询中的脚本字段。我想在此脚本字段上再进行一个聚合。可能吗 ?如果可以,请帮帮我。
我的查询:-
{
"from": 0,"size": 0,"query": {
"bool": {}
},"aggs": {
"stakeholder_category": {
"terms": {
"field": "stakeholder_level","size": 214748364
},"aggs": {
"Coverage-Calculation": {
"terms": {
"field": "stakeholder_name","size": 214748364
},"aggs": {
"Total-Hours": {
"sum": {
"field": "field_capacity_building_duration"
}
},"include_source": {
"top_hits": {
"size": 1,"_source": {
"includes": [
"state_location","district_location"
]
}
}
},"Calculated-Category": {
"bucket_script": {
"buckets_path": {
"NumberOfEngagements": "_count","TotalHours":"Total-Hours"
},"script": {
"lang": "painless","source": """
if (params.TotalHours >= 20 && params.NumberOfEngagements >= 2) {
return 1;
} else if(params.TotalHours >3) {
return 2 ;
}
else if(params.TotalHours >3) {
return 2 ;
}
else if(params.TotalHours >=1 && params.TotalHours <=3) {
return 3 ;
}
else if(params.TotalHours ==0) {
return 4 ;
}
"""
}
}
}
}
}
}
}
}
}
从上面的查询中,我需要在脚本字段Calculated-Category上进行汇总。我们可以对脚本字段进行汇总吗?如果是,怎么办?
上述查询的结果将是这样
{
"key" : "CHUNUSINGH GAUTAM","doc_count" : 1,"include_source" : {
"hits" : {
"total" : 1,"max_score" : 1.0,"hits" : [
{
"_index" : "elasticsearch_index_apffatest_coverage_new","_type" : "coverage_new","_id" : "entity:paragraph/3826125:en","_score" : 1.0,"_source" : {
"district_location" : [
"Raipur"
],"state_location" : [
"Chhattisgarh"
]
}
}
]
}
},"Total-Hours" : {
"value" : 0.0
},"Calculated-Category" : {
"value" : 4.0
}
},{
"key" : "SAVITA DHSH test","_id" : "entity:paragraph/3747567:en","Total-Hours" : {
"value" : 3.0
},"Calculated-Category" : {
"value" : 3.0
}
}
如果计算出的类别具有多个相同的值,则我需要进行汇总,然后将其与计数合并在一起,就像以前的术语字段汇总一样。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。