2014-10-20 103 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