需要帮助才能使用sphinx中的引号搜索获得精确的匹配结果吗

需要帮助才能使用sphinx中的引号搜索获得精确的匹配结果吗,sphinx,thinking-sphinx,Sphinx,Thinking Sphinx,我需要你的帮助来解决斯芬克斯思考中的一个问题。 我正在使用“sphinx-2.0.5-win32”和以下gems 宝石“思考狮身人面像”、“2.0.13”和宝石“谜语”、“1.5.3” sphinx.yml包含 发展: 最小中缀长度:3 字符集表格:“0..9,A..Z->A..Z,\,A..Z,-,U+410..U+42F->U+430..U+44F,U+430..U+44F,,,,,,,%,@,\,&,*,$” binlog_路径:'#' 我的模型文件: 类别Rm 定义索引do set_属性

我需要你的帮助来解决斯芬克斯思考中的一个问题。
我正在使用“sphinx-2.0.5-win32”和以下gems
宝石“思考狮身人面像”、“2.0.13”和宝石“谜语”、“1.5.3”

sphinx.yml包含
发展:
最小中缀长度:3
字符集表格:“0..9,A..Z->A..Z,\,A..Z,-,U+410..U+42F->U+430..U+44F,U+430..U+44F,,,,,,,%,@,\,&,*,$”
binlog_路径:'#'

我的模型文件:
类别Rm
定义索引do
set_属性:delta=>true
索引:code,:as=>:rm_code,:sortable=>true
具有id
结束
结束


我正在这样搜索:
Rm.search-ridle.escape(“'rm0001'”),:page=>params[:page],:per_page=>25,:match_mode=>:extended------>获取两个结果

代码 rm0001
rm0001N


我只想要搜索结果中的“rm0001,
请帮帮我

提前谢谢

Praveen

您已经设置了min_infix_len-这将启用部分单词匹配

但未设置enable_star=true,这意味着查询自动成为单词的一部分


所以,要么删除min_infix_len以禁用部分单词匹配,要么设置enable_star以使部分单词匹配仅在单词的星号/结尾包含*时发生

如果不退出搜索查询,会发生什么?我很确定引号会被转义,这不是你想要的。我试过这样做,Rm.search'rm0001',:match_mode=>:extended,但仍然得到2个结果。我想可能我应该用“:min_infix_len=>0”定义多个索引并使用它。哦,是的,肯定是min_infix_len造成了问题。我想第二个索引设置为零,然后只搜索该索引就可以了。非常感谢,它成功了。我还有一个问题,如果我这样搜索,Rm.search-ridle.escape('1-2-3'),:match_mode=>:extended,:star=>true,然后sphinx搜索
*1*-*2*-*3*
,这将导致零结果。如果我使用:star=>false搜索,它将给出正确的结果。注:“-”已编入索引*仅在单词的开头/结尾编入工作表。因为你有索引,它是单词的一部分,所以很多星星都在中间。如果没有启用星号语法,您实际上是在寻找“1-2-3”,中间的星号不包括在内。但是-在这里索引,所以如果我使用:star=>true,sphinx应该搜索
*1-2-3*
,而不是
*1*-*2*-*3*
。对吗?