【发布时间】:2013-09-30 09:31:49
【问题描述】:
我需要您的帮助来解决 Thinking Sphinx 中的问题。
我正在使用“sphinx-2.0.5-win32”和以下宝石
gem 'thinking-sphinx', '2.0.13' 和 gem 'riddle', '1.5.3'
sphinx.yml 包含
开发:
min_infix_len: 3
charset_table: "0..9, A..Z->a..z, _, a..z, -, U+410..U+42F->U+430..U+44F, U+430 ..U+44F, ., %, @, #, &, *, $"
binlog_path: '#'
我的模型文件:
班级房间
定义索引做
set_property :delta => true
索引 :code, :as => :rm_code, :sortable => true
有身份证
结束
结束
我是这样搜索的:
rm.search Riddle.escape('"rm0001"'), :page => params[:page], :per_page => 25, :match_mode => :extended -----------> 得到 2结果
代码
rm0001
rm0001N
我只想在搜索结果中显示“rm0001”,
请帮帮我
提前致谢。
普拉文
【问题讨论】:
-
如果不转义搜索查询会发生什么?我很确定引号会被转义,这不是您想要的。
-
我试过这样,Rm.search '"rm0001"', :match_mode => :extended,但仍然得到 2 个结果。我想我应该用 ':min_infix_len => 定义多个索引0' 并使用它。
-
哦,是的,肯定是 min_infix_len 会导致问题。我猜第二个索引设置为零,然后只搜索那个索引就可以了。