2013-04-08 69 views
2

我想根據數字與查詢的接近程度對我的文檔進行評分。鑑於我有兩個文件document1.field = 1document2.field = 10,查詢field = 3然後我想要document1._score > document2._score。或換句話說,我想要一個像模糊查詢對號碼的東西。我將如何實現這一目標?用例是我想支持價格查詢(精確或範圍),但想要排列不完全在邊界內的東西。Elasticsearch基於數字與查詢的接近程度來計分

回答

1

它可以使用custom_score查詢來實現,其中腳本將根據確切價格和期望價格之間的差異的絕對值確定提升。應該將期望的價格作爲參數傳遞給腳本,以避免爲每個請求重新編譯腳本。

或者,它可以使用custom_filters_score查詢來實現。這裏的過濾器將包含期望價格的不同範圍。較小的範圍將具有較高的提升量,並且在較大範圍內出現在列表中較高。

2

您正在尋找Decay functions

衰減函數得分的文件與根據文檔的數字字段值從用戶給定的原點的距離衰變的功能。這與範圍查詢類似,但具有平滑邊緣而非框。

相關問題