我试图找到这个问题的答案,但找不到。场景是:我必须获得一个额外的字段,该字段是 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/