查询结果类似于 google 在 rails 中搜索
Query with results approached like google search in rails
如何获取结果查询,例如 google 在活动记录中搜索 rails?
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"}]
怎么做?
那种东西真的是针对搜索引擎的,而不是SQL。您可能希望通过许多其他方式以模糊方式匹配事物,例如区分大小写、拼写错误等。试图用复杂的 SQL 来掩盖这一切会让你慢慢发疯。
我为此使用 Searchkick,但还有许多其他选择。您将需要一个搜索索引器,例如Elasticsearch 或 Solr,然后是某种 gem 将其绑定到您的 AcitveRecord 类.
对 User
型号使用 Searchkick:
class User < ActiveRecord::Base
searchkick
end
然后在终端中:
User.reindex
然后搜索:
users = User.search 'johnnow'
如何获取结果查询,例如 google 在活动记录中搜索 rails?
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"}]
怎么做?
那种东西真的是针对搜索引擎的,而不是SQL。您可能希望通过许多其他方式以模糊方式匹配事物,例如区分大小写、拼写错误等。试图用复杂的 SQL 来掩盖这一切会让你慢慢发疯。
我为此使用 Searchkick,但还有许多其他选择。您将需要一个搜索索引器,例如Elasticsearch 或 Solr,然后是某种 gem 将其绑定到您的 AcitveRecord 类.
对 User
型号使用 Searchkick:
class User < ActiveRecord::Base
searchkick
end
然后在终端中:
User.reindex
然后搜索:
users = User.search 'johnnow'