Java API实现Elasticsearch中script_fields的查询

标签 java elasticsearch

我试图找到这个问题的答案,但找不到。场景是:我必须获得一个额外的字段,该字段是 Elasticsearch 查询结果中两个字段的计算。为此,我使用 script_fields。

"script_fields": {
      "result": {
        "script": "doc['feild1'].value / doc['field2'].value"
      }
    }

查询工作正常,我得到了正确的结果。 但现在我必须用Java实现查询,我找不到任何方法在Java中实现script_fields。

有人可以帮忙吗?

最佳答案

非常简单地使用 addScriptField() 方法,如下所示:

SearchResponse response = client().prepareSearch()
    .setQuery(matchAllQuery())
    .addScriptField("result", new Script(ScriptType.INLINE, "groovy", "doc['field1'].value / doc['field2'].value", Collections.emptyMap()))

关于Java API实现Elasticsearch中script_fields的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41935809/

相关文章:

django - 对于与ElasticSearch索引文本不完全匹配的查询,如何获得结果?

elasticsearch - 向 Elasticsearch 服务器发送 curl 请求时,不支持错误application/x-www-form-urlencoded

json - logstash_forwarder已连接到Lostash服务器IP,但从未收到事件

json - JDBC、Elasticsearch 和 Postgresql Json 数据类型

java - 在Java中获取网络资源的修改日期

java - Android 房间错误 : Dao class must be annotated with @Dao

java - Java 中的屏幕捕获无法捕获整个屏幕

java - 尽管调用了 flush(),Servlet 仍在缓冲响应

java - 无法解析构造函数 FirefoxDriver(org.openqa.selenium.firefox.FirefoxProfile)

elasticsearch - Elastic Search带有多个值的 “and”运算符