java - 如何在Java API中Elasticsearch范围查询两个字段的总和?

标签 java elasticsearch

我的文档中有两个字段:ACountBCount,我想编写一个范围查询来获取 sum(ACount + BCount) 的文档> 100 通过 Java API。我试图做类似的事情 BoolQueryBuilder.must(QueryBuilders.rangeQuery(...).gte(100)),但找不到一个好的方法来做到这一点。有谁知道该怎么做吗?

最佳答案

您需要为此使用无痛脚本。

{
  "query": {
    "bool": {
      "filter": [
        {
          "script": {
            "script": {
              "source": "(doc['ACount'].value + doc['BCount'].value) > params.count",
              "params": {
                "count": 100
              }
            }
          }
        }
      ]
    }
  }
}

您可以使用java客户端生成上述查询。

关于java - 如何在Java API中Elasticsearch范围查询两个字段的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56226381/

相关文章:

elasticsearch - Logstash:TypeError:没有将nil隐式转换为字符串

php - elasticsearch-php创建索引返回\BadRequest400Exception

java - 除非在 java 中重定向输出,否则 ffmpeg 不会运行

java - 如何编写代码添加储蓄帐户程序中所有月份余额的总计

java - 使用 Hibernate Criteria 获取多个随机行

elasticsearch - Packetbeat 缺少一些数据

elasticsearch - Elasticsearch V5 Analyzer演示示例不起作用

java - 如何以编程方式将 bean 添加到 Spring 上下文?

java - Eclipse 语法突出显示 Java Struts Hibernate Web 应用程序

elasticsearch - ElasticSearch如何按文件/字段的重量排序?