查询结果类似于 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'