我在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
}
}
如果我输入ad
或Ad
,我会收到'Adnan'和'Adrian'的结果。我想要的是,如果我输入an
,我也会得到相同的结果。或者如果我输入dnan
,我会得到'Adnan'。这可能与pg_search有关吗?
答案 0 :(得分:4)
我是pg_search的作者。
使用postfix搜索工作的一种方法是使用trigram搜索而不是tsearch。 Trigram搜索对字符串的任何部分起作用。
或者,可以为tsearch添加一个与postfix
类似的prefix
选项,但这需要为gem添加新功能。