文章詳情頁
mysql - sphinx查詢 "中國" 時也能查詢到 "中華人民共和國"
問題描述
sphinx初學者,有個疑問,之前沒學sphinx的時候以為:查詢 '中國' 時也能查詢到 '中華人民共和國'查詢 '大姨媽' 時也能查詢到 '例假'查詢 '蘋果' 時也能查詢到 'iPhone'類似這樣的還有很多,網上沒有找到相關的文章,不知該搜索什么關鍵詞,所以在這里請教諸位,謝謝咯~~~如果支持,希望提供思路或操作步驟
問題解答
回答1:據我了解是不行的,因為sphinx是檢索引擎+coreseek是中文分詞功能,應該不具備這樣的功能。
在sphinx.conf配置文件里也沒看到相關,所以如果想要你所說的功能,應該是用其他的插件。
如果是純粹提供一個思路的話:我們搜索出來的結果都不是直接展示出來的,而是要通過一個權重判斷(增加權重字段),例如與中國相關的這些詞中,權重最高的是中華人民共和國。其他詞語也是一樣,這樣子應該能完成你想要得效果,純粹mysql實現還比較容易,但在sphinx中比較難,因為它檢索的邏輯都定死的。
回答2:想多了。sphinx只是根據關鍵詞檢索。近義詞和相關詞都是手動設計和智能機器學習來的。
回答3:這個叫搜索重寫,最簡單的方式是做一個別名表,先分詞 -> 取別名 -> 歸一化 -> 交給sphinx 查詢。
相關文章:
1. dockerfile - [docker build image失敗- npm install]2. mysql - 記得以前在哪里看過一個估算時間的網站3. angular.js - angularjs如何傳遞id給另一個視圖 根據id獲取json數據?4. docker gitlab 如何git clone?5. 使用text-shadow可以給圖片加陰影嗎?6. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?7. nginx啟用gzip壓縮后,文件尺寸無變化.8. 數據庫無法進入9. java - HashSet<int> 為何有錯誤?10. docker start -a dockername 老是卡住,什么情況?
排行榜
