我有一个使用thinking_sphinx成功进行索引/搜索的rails应用程序。然而,我想知道是否有办法让部分工作匹配搜索。这意味着如果我的报告标题为“最佳报告”,并且我搜索“最佳”,则会返回该报告。
答案 0 :(得分:2)
我建议您尝试使用Thinking Sphinx进行通配符搜索。
基本上有三种设置来规则通配符搜索世界:* enable_star * min_prefix_len * min_infix_len
注意:* enabled_star是必需的加上其他两个中的一个用于启用前缀或中缀搜索的设置(不能同时具有两者,至少在同一索引上)*
例如:
型号:
class Comment < ActiveRecord::Base
#define the indexes for your searchable attributes
define_index do
indexes :comment
enable_star: true
min_infix_len: 3
has created_at,updated_at
end
end
控制器:
class CommentsController < ApplicationController
def search
@result = ThinkingSphinx.search "*#{params[:id]}*" ,:classes => [Comment,....]
end
end
然后重建thinking_sphinx:
(或)
以上示例将在以下实例中生成:
Comment.search“Best *”
Comment.search“Best Rep *”
Comment.search“ Rep ”..等等
如果有任何疑问,请问我.......
答案 1 :(得分:1)
我不确定,但默认情况下这样做,不过你可以在这里查看匹配模式http://freelancing-god.github.com/ts/en/searching.html