elastic search 计算两个属性相减大于10 的数量
时间: 2023-07-18 14:24:27 浏览: 60
可以使用 Elasticsearch 的聚合功能来计算两个属性相减大于10的数量。
具体步骤如下:
1. 使用 bool 查询来筛选出符合条件的文档,即两个属性相减大于10的文档。
```
{
"query": {
"bool": {
"filter": {
"script": {
"script": {
"lang": "painless",
"source": "doc['field1'].value - doc['field2'].value > 10"
}
}
}
}
}
}
```
2. 使用聚合函数来计算符合条件的文档数量。
```
{
"query": {
"bool": {
"filter": {
"script": {
"script": {
"lang": "painless",
"source": "doc['field1'].value - doc['field2'].value > 10"
}
}
}
}
},
"aggs": {
"count": {
"value_count": {
"field": "_id"
}
}
}
}
```
其中,aggs 中的 count 表示对符合条件的文档进行计数,并将结果放到 count 字段中。
注意:在使用 script 查询时需要开启 dynamic scripting,或者在 Elasticsearch.yml 文件中设置 script.painless.regex.enabled: true。