2017-01-30 58 views
0

我試圖找到此問題的答案但找不到。場景是:我必須得到一個額外的字段,它是彈性搜索查詢結果中兩個文件的計算結果。爲此,我使用script_fields。Java API在彈性搜索中實現對script_fields的查詢

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

查詢工作正常,我得到正確的結果。 但現在我必須在Java中實現查詢,我找不到任何方法在Java中實現script_fields。

有人可以幫忙嗎?

回答

1

非常簡單地使用addScriptField()方法是這樣的:

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

感謝您的答覆,但我用的信息搜索結果的API, – pbajpai21

+0

你所說的「信息搜索結果API」是什麼意思?請用您當前的代碼更新您的問題 – Val