在Rails中编写搜索功能的惯用方法是什么?

时间:2013-12-14 22:06:39

标签: sql ruby-on-rails search

我的Rails应用程序的搜索算法现在可以使用,但我真的不认为这是应该怎么做的。基本上,我做了以下性质的事情:

def search
    users = User.all
    //Implement search algorithm on the users array
end

我真的觉得这不应该是我应该怎么做的。我觉得我应该使用SQL或ActiveRecord方法来准确获取我需要的行,但是当搜索变得非常密集时,我觉得这将是一个非常艰难的SQL命令写。编写搜索算法以搜索数据库中特定内容的惯用方法是什么?例如,名字。如果我想搜索姓名并输入ire该怎么办?我希望在Irene之前显示desiree,但两者都有子字符串。只是一个例子。

1 个答案:

答案 0 :(得分:1)

当我需要真正的搜索时,我通常很有弹性,就像你提到的“艾琳”的词干一样:

https://github.com/elasticsearch/elasticsearch-ruby

对于较小的需求,你可以使用postgres中的全文搜索功能,使用像我这样的宝石:

https://github.com/textacular/textacular