es查询某一列减去某个固定值然后大于0的数据
时间: 2024-02-20 14:57:22 浏览: 56
ES查询客户端,elasticsearch可视化工具 elasticsearch查询客户端
好的,你的问题是如何用ES查询某一列减去某个固定值然后大于0的数据。可以使用ES的聚合功能,具体步骤如下:
1. 使用ES的聚合功能,对要查询的列进行求差操作,得到新的一列数据。
2. 使用ES的聚合功能,对新的一列数据进行过滤,只保留差值大于0的数据。
3. 返回符合条件的数据。
具体的查询语句如下,假设要查询的列为col1,要求col1-10大于0:
```
POST /your_index/_search
{
"size": 0,
"aggs": {
"diff_col": {
"scripted_metric": {
"init_script": "state.values = []",
"map_script": "def diff = doc['col1'].value - 10; state.values.add(diff);",
"combine_script": "return state.values",
"reduce_script": "def result = []; for (values in states) { result.addAll(values) }; return result;"
}
},
"filtered_diff_col": {
"bucket_selector": {
"buckets_path": {
"diff": "diff_col.value"
},
"script": "params.diff > 0"
}
}
}
}
```
其中,使用scripted_metric聚合对col1进行求差操作,得到新的一列数据。然后使用bucket_selector聚合对新数据进行过滤,只保留差值大于0的数据。最后返回符合条件的数据。
阅读全文