Sql 什么';在Rails中编写搜索函数的惯用方法是什么?
我的Rails应用程序现在有一个搜索算法,但我真的不认为应该这样做。基本上,我做了以下性质的事情:Sql 什么';在Rails中编写搜索函数的惯用方法是什么?,sql,ruby-on-rails,search,Sql,Ruby On Rails,Search,我的Rails应用程序现在有一个搜索算法,但我真的不认为应该这样做。基本上,我做了以下性质的事情: def search users = User.all //Implement search algorithm on the users array end 我真的觉得我不应该这样做。我觉得我应该使用SQL或ActiveRecord方法来精确地获取所需的行,但是当搜索变得非常密集时,我觉得编写SQL命令非常困难。编写搜索算法以搜索数据库中的特定内容的惯用方法是什么?例如,名字。
def search
users = User.all
//Implement search algorithm on the users array
end
我真的觉得我不应该这样做。我觉得我应该使用
SQL
或ActiveRecord方法来精确地获取所需的行,但是当搜索变得非常密集时,我觉得编写SQL
命令非常困难。编写搜索算法以搜索数据库中的特定内容的惯用方法是什么?例如,名字。如果我想搜索姓名并输入ire
,该怎么办。我希望Irene
出现在desiree
之前,但两者都有子字符串。只是一个例子 当我需要真正的搜索时,我通常很灵活,比如你提到的“Irene”的词干:
对于较小的需求,您可以使用postgres中的全文搜索功能,我使用的gem如下:
很有趣。我肯定会研究它们,但我会更多地研究一个答案,比如elasticsearch将如何执行搜索?它会构造一个复杂的SQL查询,还是会将每一行收集到一个数组中,然后在数组上执行搜索算法?elasticsearch是一个以lucene为核心的搜索引擎,请查阅这些内容,以获得有关这些内容如何工作的详细信息。@David elastic search将以更适合搜索的结构对内容本身进行索引。它不会在数据库上执行SQL查询。另一方面,textacular使用postgres,并构造利用postgres全文索引的SQL,这就是我使用postgres的原因:)您可以使用很多优秀的工具。