2015-09-20 29 views

回答

3

這是不可能的,因爲當計算文檔的分數時,腳本字段值還沒有被計算。搜索請求通常分兩個階段執行:查詢提取。在查詢階段分數計算和頂級文件被選中檢索。然後在獲取階段期間使用頂部文檔的列表來檢索文檔。在此檢索過程中,計算腳本字段。

換句話說,爲了使用腳本得分的文件,你需要通過將其放置到function_score查詢中使用的查詢階段這個腳本,例如

+0

那麼,如何讓中間的返回值出了function_score查詢並返回結果? ;) –

+1

@GabeKopley這是不可能的,除非1)這些值是實際的命中分數或者2)你想將腳本實現爲java插件(AKA本地腳本)並將這些中間值自己存儲在某個靜態映射中。沒有地方腳本可以在這些階段之間「存儲」這些中間值。在階段之間獲得的唯一信息是分數和排序鍵。 – imotov

+0

謝謝@imotov。我們不能返回任意數量的分數,只有一個分數,對吧? (這就是所有文檔所建議的)。 –

相關問題