我正在嘗試爲Rails中的一家雜貨店構建一個搜索界面。 我有幾個雜貨店產品存儲在我的數據庫中,但我正在努力尋找一種很好的方式來搜索他們。Rails在食品中搜索(全文與語義)
到目前爲止,我用Thinking Sphinx來做產品的全文搜索。 這適用於某些項目,比如「雞蛋」,但對其他搜索有一些問題,例如「石灰」。
例如,當我搜索「石灰」,我得到以下歸還物品:
- 飲食塞拉利昂霧酸檸檬冰箱伴侶蘇打
- G2酸檸檬低熱量電解質飲料
- 鹿公園貝瑞石灰蘇打水
- 海洋噴霧雞尾酒石灰蔓越莓汁
- 復古塞爾策水淡水湖石灰
- 可樂飲食酸橙汽水等高瓶
- 可樂飲食酸橙汽水冰箱包
- 飲食塞拉利昂霧酸檸檬冰箱伴侶蘇打
- Refreshe蘇打節食檸檬石灰冰箱包
- Refreshe蘇打檸檬青檸
- Refreshe檸檬蘇打石灰冰箱包
- 塞拉利昂霧天然檸檬酸橙蘇打水
- ...等
我真正想要的是實際的水果,這被列爲這些產品在我的數據庫:
- 利姆大
- 有機石灰
- 石灰重點預裝
我怎樣才能使我的搜索更智能?
值得注意的是,我對每種產品都有很多分類數據。 我基本上有一個完整的「食物樹」,其中每個產品都是樹的根節點。
對於產品「酸橙大的」,例如,我有以下幾類:
水果&蔬菜>新鮮水果>柑橘類>檸檬大
我怎樣才能更好地利用這些類別來改善我的搜索?
在我的研究中,我開始相信我需要使用語義搜索而不是全文搜索。 我遇到了Ruby的Picky gem,看起來很有前途,但我不確定我是否有正確的方法。
語義搜索可以幫助我執行更好的搜索嗎? Picky是否適合以這種方式分類的數據?任何其他見解? 任何指導將非常感激。提前致謝。
謝謝!這真的很有幫助。我最終爲TS增加了一些索引和屬性,以更好地處理類別。但我認爲Picky總體上有更好的方法。我可能會在不久的將來將它移植過來。 – paniwani 2012-08-08 19:28:26
您的方法聽起來也不錯:)如果您有時間,生成示例服務器並使用它稍微花費一點費用。歡呼和樂趣! – 2012-08-09 08:52:06