Rails thinking_sphinx模糊搜索问题

时间:2011-02-04 05:08:38

标签: ruby-on-rails sphinx thinking-sphinx

我正在尝试为自动建议搜索字段设置thinking_sphinx。在每个按键上,我在我的数据库中搜索字段中当前文本值。我将min_infix_len设置为3,我不希望在输入至少3个字符之前开始出现建议。问题来自多字查询。尽管设置:match_mode => :短语,我输入的每个新单词在sphinx搜索中显然都被视为一个单独的关键字,必须遵守3的min_infix_len。

因此,如果我输入“Lorem Ipsum”,我会收到“Lor”,“Lore”和“Lorem”的自动建议。然后我没有得到“Lorem I”和“Lorem Ip”的结果。然后,一旦我点击“Lorem Ips”,我就会再次获得结果。

这笔交易是什么?如果不是这样的话:match_mode => :短语是为了什么,然后它是为了什么?

2 个答案:

答案 0 :(得分:1)

您可以通过此方法扩展String类,该方法将一个或多个单词的字符串转换为星形可搜索字符串

def to_star_search
  "*#{self.strip.gsub(/ +/, '* *')}*"
end

答案 1 :(得分:0)

我很确定min_infix_len只会在Sphinx中索引数据时产生影响。搜索时根本不适用。所以:min_infix_len适用于每个单词,而不适用于短语。