首頁  >  問答  >  主體

mysql - sphinx查询 "中国" 时也能查询到 "中华人民共和国"

sphinx初学者,有个疑问,之前没学sphinx的时候以为:
查询 "中国" 时也能查询到 "中华人民共和国"
查询 "大姨妈" 时也能查询到 "例假"
查询 "苹果" 时也能查询到 "iPhone"
类似这样的还有很多,网上没有找到相关的文章,不知该搜索什么关键词,所以在这里请教诸位,谢谢咯~~~
如果支持,希望提供思路或操作步骤

怪我咯怪我咯2741 天前600

全部回覆(3)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-17 14:48:44

    據我了解是不行的,因為sphinx是檢索引擎+coreseek是中文分詞功能,應該不具備這樣的功能。

    在sphinx.conf設定檔裡也沒看到相關,所以如果想要你所說的功能,應該是用其他的插件。

    如果是純粹提供一個思路的話:
    我們搜尋出來的結果都不是直接展示出來的,而是要透過一個權重判斷(增加權重字段),例如與中國相關的這些詞中,權重最高的是中華人民共和國。其他字也是一樣,這樣子應該能完成你想要得效果,純粹mysql實作還比較容易,但在sphinx中比較難,因為它檢索的邏輯都定死的。

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 14:48:44

    想太多了。 sphinx只是根據關鍵字檢索。近義詞和相關詞都是手動設計和智慧機器學習來的。

    回覆
    0
  • PHPz

    PHPz2017-04-17 14:48:44

    這個叫搜尋重寫,最簡單的方式是做一個別名表,先分詞 -> 取別名 -> 歸一化 -> 交給sphinx 查詢。

    回覆
    0
  • 取消回覆