2014-10-20 122 views
0

如何搜索全文與句子和搜索匹配的任何單詞或不同的配置Ruby on Rails的全文搜索

例如:

「教授約翰·史密斯」在車型名稱搜索

它要顯示結果是相匹配的「proffessor約翰·史密斯」,「教授約翰」」,‘proffesson史密斯’

回答

0

可以使用sunspot

描述: 太陽黑子是一個Ruby庫與Solr的搜索引擎表現,強大的互動。太陽黑子建立在RSolr庫之上,它爲Solr交互提供了一個低級接口;太陽黑子提供了一個簡單,直觀,富有表現力的DSL,其強大的功能支持索引對象並搜索它們。

1

有一些技術與導軌兼容。比如@scottxu寫的太陽黑子,或者elasticsearch,就像@knotito說的那樣。良好的解決方案也是 - sphinx(快和輕)和thinking_sphinx寶石。如果您使用postgresql作爲數據庫,並且您不想使用外部解決方案 - 您可以選擇pg_search gem,該emplements全文搜索僅適用於pg技術。我更喜歡elasticsearch,但它需要JVM,有些人不喜歡這樣。

更新:

如何使用pg_search: 首先,你應該添加pg_search到Gemfile中,使bundle install,並添加到您的模型是這樣的:

include PgSearch 
pg_search_scope :search_by_title, :against => :title 

,如果你沒有做到這一點之前。

後,您可以嘗試測試它在軌道控制檯: Professor.search_by_title(「史密斯教授)

+0

HEJ阿維。我只是安裝pg_search,但不知道如何配置它找到「proffesson史密斯」。也許你知道這種情況下的corrent配置。謝謝 – betromatic 2014-10-22 08:01:49

+0

我更新了答案 – avy 2014-10-22 08:58:13

2

有很多全文檢索技術的支撐軌。 elasticsearch和他們的太陽能搜索AR EONE

Rails的投有關集成太陽能搜索here