如何构建搜索功能来搜索GitHub等多个模型?

时间:2011-03-25 06:26:07

标签: ruby-on-rails ruby ruby-on-rails-3

我想知道如何实现像Github这样的搜索功能。 顶部标题右侧只有一个搜索框,当搜索关键字时,显示存储库,代码和用户的结果。

是否有任何教程或示例在Rails 3上实现此功能?

2 个答案:

答案 0 :(得分:1)

赔率非常好,他们在表格中对相同的值进行单独搜索,然后将结果组合起来。

使用Rails创建包含文本字段的小表单。提交时,请使用该字段的值并使用该字段作为搜索字词进行查询。

如果您不确定如何使用ActiveRecord进行查询,请参阅“Active Record Query Interface”以获得精彩的概述。

答案 1 :(得分:1)

您必须执行多个查询,每个模型一个,并将结果放在同一视图中。

如果您的问题是“我如何以干燥的方式对几个activerecord模型进行全文搜索”,那么基本上有两条路径:

常见的解决方案,但有点复杂,是在您的计算机上使用专用守护程序,如Sphinx。 Sphinx是一种服务(如Apache或MySQL),可以为您的内容编制索引,并允许您进行搜索。您可以使用Thinking Sphinx gem轻松地从rails与它进行通信。 Sphinx的另一种选择是Solr(还有一个名为Sunspot的宝石)

如果您使用的是Postgresql,则可以使用更简单的替代方案,不需要在服务器上运行外部服务。 Postgresql内置了一些全文搜索功能。有一个名为texticle的gem可以帮助从rails使用这些服务。你可以很快地完成这项工作。