- 需求:求每个科室下不同病历级别的百分比。
- 思路:按每个科室分组,再按级别分组,再求占比。
- 开动。
第一次尝试:
POST /medicalrecord/my_type/_search?size=0
{
"size": 0,
"aggs": {
"department_group": {
"terms": {
"field": "department_secondary",
"size": 1000000
},
"aggs": {
"total_record": {
"value_count": {
"field": "emr_id"
}
},
"levels": {
"filter": {
"terms": {
"has_bug": [
"1",
"2",
"3"
]
}
},
"aggs": {
"level_group": {
"terms": {
"field": "has_bug",
"size": 3
},
"aggs": {
"every_level_count": {
"value_count": {
"field": "emr_id"
}
},
"level_percentage": {
"bucket_script": {
"buckets_path": {
"every_level_count": "every_level_count",
"department_total_record": "total_record"
},
"script": "params.every_level_count / params.department_total_record"
}
}
}
}
}
}
}
}
}
}
报错:
{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "No aggregation found for path [total_record]"
}
],
"type": "search_phase_execution_exception",
"reason": "all shards failed",
"phase": "query",
"grouped": true,
"failed_shards": [
{
"shard": 0,
"index": "medicalrecord",
"node": "p9ZUXdr9R3mxulJKxgNtGA",
"reason": {
"type": "illegal_argument_exception",
"reason": "No aggregation found for path [t