1
我有像某些字段用戶資料:替換默認Elasticsearch得分
- 用戶名
- 性別
- 國籍
- 年齡
- 語言
- 首選語言
- 首選年齡
每個用戶應該能夠搜索基於一些過濾器(用戶名,性別,年齡,語言),而最終的結果應該根據喜好得分進行排序的其他用戶(首選語言,偏好的年齡)
考慮下面的例子:
用戶配置文件:
- 用戶名= 'randomdude'
- 性別= '男性'
- 國籍= '意大利'
- 年齡= '21'
- 語言= '英語,意大利語,西班牙語'
- 優選語言= '英語,意大利語'
- 優選年齡= '20 -30'
Randomdude希望進行研究我們ElasticSearch文件,他會設置這些過濾器:
- 性別=「女」
- 國籍=「西班牙」
所以最終名單應該包括西班牙唯一的女性,但它應該更喜歡英語的人或意大利在20和30之間的語言領域和年齡,但不排除其他地區。所以他仍然可以看到那些用西班牙語說話的人,並且已經有40人,但幾乎排在最後。
我正在使用Elasticsearch的php包裝。我嘗試過使用很多函數,我想我應該使用函數分數查詢,但是我無法完成它,因爲文檔對我來說非常混亂。
沒錯,function_score是要走的路。分享你的嘗試和失敗的地方會很高興。實際上,function_score文檔可能是我們有過的最好的文檔,正如一些人在twitter上所說的那樣:) https://twitter.com/alexbilbie/status/382136147893571584 – javanna