我试图找到这个问题的答案,却找不到。场景是:我必须得到一个额外的字段,即弹性搜索查询结果中两个文件的计算。为此我使用的是script_fields。
"script_fields": {
"result": {
"script": "doc['feild1'].value / doc['field2'].value"
}
}
查询工作正常,我得到了正确的结果。 但是现在我必须用Java实现查询,我找不到用Java实现script_fields的任何方法。
有人可以帮忙吗?
答案 0 :(得分:1)
非常简单地使用addScriptField()
方法,如下所示:
SearchResponse response = client().prepareSearch()
.setQuery(matchAllQuery())
.addScriptField("result", new Script(ScriptType.INLINE, "groovy", "doc['field1'].value / doc['field2'].value", Collections.emptyMap()))