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

时间:2019-05-20 18:32:17

标签: java elasticsearch

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

1 个答案:

答案 0 :(得分:0)

您需要为此使用轻松的脚本。

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

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

相关问题