elasticsearch - 如何划分两个领域并求平均值

标签 elasticsearch

我正在使用Elastic 6.5

我需要将两个字段划分在一起,然后获得平均值。

我尝试重新创建的示例mysql:

SELECT avg(field1/field2)
FROM table
WHERE field1 > 0 && field2 > 0

最佳答案

我已经通过以下查询解决了我的任务:

{
  "size": 0,
  "query": { 
    "match_all":{}
  },
  "aggs": {
    "average": {
      "avg": {
        "script": {
          "source": "(doc['field1'].empty || doc['field2'].empty || doc['field2'].value < 1  ? null : doc['field1'].value / doc['field2'].value)"
        }
      }
    }
  }
}

关于elasticsearch - 如何划分两个领域并求平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55286791/

相关文章:

node.js - 在Elasticsearch 6x中何处添加索引缓冲区大小

elasticsearch - Elasticsearch 查询所有字段,包括嵌套字段

elasticsearch - Elasticsearch聚合:可以在聚合中引用过滤器/查询数据

elasticsearch - Elasticsearch子字符串匹配

ruby-on-rails - Elasticsearch Rails 持久性模型 : how to update nested objects?

logging - 在 fluentd 中解析日志

lucene - 删除所有记录中的字段及其内容,并使用新映射重新创建它

c# - C#嵌套Elasticsearch将GUID转换为数组

javascript - Elastic Search JS函数返回值

elasticsearch - 检索Copy_to/Stored字段