【问题标题】:Elasticsearch JAVA API for script tag用于脚本标签的 Elasticsearch JAVA API
【发布时间】:2019-08-22 17:13:30
【问题描述】:

我必须查询 elasticsearch 以获取文档中两个字段的总和,这些字段位于特定范围内。

我正在尝试为以下弹性搜索查询创建 Java API,但无法弄清楚如何包含脚本标签和选择 doc 元素,即 doc['maintenanceCost']。任何帮助将不胜感激。

{
   "query": {
       "bool" : {
           "filter" : {
               "script" : {
                   "script" : "doc['price'].value + doc['maintenanceCost'].value  > 1000 && doc['price'].value + doc['maintenanceCost'].value  < 10000"     
           }
           }
       }
   }
}

我基本上需要价格和enter code here 维护成本之和在 1000 到 10000 之间的文档

我已经尝试了几个像 ScriptBuilders 这样的查询,但没有一个能奏效

【问题讨论】:

    标签: elasticsearch elasticsearch-java-api


    【解决方案1】:

    您可以将 QueryBuilders.scriptQuery() 与 Script 对象一起使用。在你的情况下,它会是这样的:

    QueryBuilders.scriptQuery(
            new Script("doc['price'].value + doc['maintenanceCost'].value  > 1000 && doc['price'].value + doc['maintenanceCost'].value  < 10000")                  
        );
    

    有关此方法的更多详细信息可以找到here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      • 2020-10-18
      • 2021-10-24
      • 2018-07-03
      • 2022-01-14
      • 1970-01-01
      相关资源
      最近更新 更多