如何检查表中的任何ActiveRecord中是否存在字符串?

时间:2013-01-06 00:29:38

标签: ruby-on-rails ruby-on-rails-3 postgresql heroku full-text-search

这需要全文搜索还是可以使用方法?

我有一个中文句子表,我想查找包含字符串的所有记录。

例如:

irb(main):007:0> Hint.all
  Hint Load (0.7ms)  SELECT "hints".* FROM "hints" 
[
    [0] #<Hint:0x007fb99c9d1900> {
                :id => 107,
          :sentence => "你叫什么名字?",
              :user => nil,
           :learned => nil,
        :created_at => Sat, 05 Jan 2013 21:04:06 UTC +00:00,
        :updated_at => Sat, 05 Jan 2013 21:04:06 UTC +00:00
    },
    [1] #<Hint:0x007fb99f2acc30> {
                :id => 108,
          :sentence => "当时有约翰做他们的助手。",
              :user => nil,
           :learned => nil,
        :created_at => Sat, 05 Jan 2013 21:04:23 UTC +00:00,
        :updated_at => Sat, 05 Jan 2013 21:04:23 UTC +00:00
    },
    [2] #<Hint:0x007fb99f2ac618> {
                :id => 109,
          :sentence => "马可和家人可能过着舒适的生活,因为他们在城里有自己的房子,家里有仆人。",
              :user => nil,
           :learned => nil,
        :created_at => Sat, 05 Jan 2013 21:19:43 UTC +00:00,
        :updated_at => Sat, 05 Jan 2013 21:19:43 UTC +00:00
    }
]

我想搜索&#34;名字&#34;它返回sentence表中包含该字符串的记录列表。在这种情况下,它会在[0]中找到匹配。

(如果需要全文搜索,你能推荐一些适用于中文和heroku的东西,尽可能接近免费吗?)

1 个答案:

答案 0 :(得分:0)

你能做这样的事情还是我遗漏了一些关于unicode符号的东西?

Hint.where("sentence LIKE '%名字%'")