如何在活动记录栏中获取谷歌搜索等结果查询?
example 1 :
User.all
result :
[{name: "john now", age: "14"}, {name: "desy awesome", age: "19"}]
example 2 :
User.where("name LIKE ?", "%jo%")
result :
[{name: "john now", age: "14"}]
我的问题是,当我搜索姓名" johnnow"我想得到像波纹管一样的结果。示例:
User.where("name LIKE ?", "%johnnow%")
result :
[{name: "john now", age: "14"}]
怎么做?
答案 0 :(得分:1)
这种事情实际上是针对搜索引擎而不是SQL。还有许多其他方法可能需要以模糊的方式匹配事物,例如区分大小写,拼写错误等。试图用复杂的SQL来覆盖它会让你慢慢发疯。
我为此使用Searchkick,但还有许多其他选择。您需要一个搜索索引器,例如Elasticsearch或Solr,然后是某种宝石,将它绑定到你的AcitveRecord类中。
将Searchkick用于User
模型:
class User < ActiveRecord::Base
searchkick
end
然后在终端:
User.reindex
然后搜索:
users = User.search 'johnnow'