2

我正在使用 Rails 4.2 中的 pg_search gem 来搜索模型中的名称。我有以下内容:

pg_search_scope :search_for_dashboard,
    lambda { |q|
      {
        against: [:name, :email, :description],
        using: {
          tsearch: {
            prefix: true
          }
        },
        ignoring: :accents,
        query: q
      }
    }

如果我输入ador Ad,我会得到带有 'Adnan' 和 'Adrian' 的结果。我想要的是,如果我输入,an我也会得到相同的结果。或者,如果我输入dnan,我会得到“Adnan”。pg_search 有可能吗?

4

1 回答 1

4

我是 pg_search 的作者。

使后缀搜索起作用的一种方法是使用三元组搜索而不是 tsearch。Trigram 搜索适用于字符串的任何部分。

或者,可以postfix为 tsearch 添加一个与 类似的选项prefix,但这需要向 gem 添加新功能。

于 2015-10-06T18:17:15.727 回答