Sphinx与列字符串完全匹配

Sphinx与列字符串完全匹配,sphinx,Sphinx,我以为 Match('^Word$') 只能找到与“Word”完全相同的记录 但是,尽管这对单个单词有效,但对多个单词无效: Match ('^Final Word$') 查找“最后一个字”和“最后一个字” 同样 Match ('^"Final Word"$') 我如何告诉斯芬克斯只找到一个精确的匹配 更新:经过一些测试后,我能做的最好的事情是加权/分级和w/o“” 因此,我强制使用排名和限制进行精确匹配,但如果知道如何实际说“只返回精确匹配”,那就太好了 上面的一个问题是,如果我在表中

我以为

Match('^Word$')
只能找到与“Word”完全相同的记录

但是,尽管这对单个单词有效,但对多个单词无效:

Match ('^Final Word$')
查找“最后一个字”和“最后一个字”

同样

Match ('^"Final Word"$')
我如何告诉斯芬克斯只找到一个精确的匹配


更新:经过一些测试后,我能做的最好的事情是加权/分级和w/o“”

因此,我强制使用排名和限制进行精确匹配,但如果知道如何实际说“只返回精确匹配”,那就太好了


上面的一个问题是,如果我在表中没有“最后一句话”,它会找到所有其他的词,例如“最后一句话”,这是我不想要的行为。

您刚才的运算符顺序错误:)


(在$后面留一个空格有助于解决一些神秘的斯芬克斯bug!)

所以问题是,在我努力完成这项工作的过程中,一个步骤是指定ranker

Option Ranker=proximition\u BM25

到那时为止,这对我很有效。真正起作用的是

匹配(“^Final Word$”)


然后不指定ranker或指定
extended
,如果配置中的ranker是另外定义的(默认情况下它是
extended

这样,无论出于何种原因匹配,都会返回零结果。sphinx的哪个版本?尝试在$后面加一个空格,在某些版本中出现了一个bug,这会神秘地不起作用!我试着在上面的回复中写下这一点,但没有成功@BarrHunter我想你不想问这个问题吗?:我的版本是斯芬克斯2.2.11-id64-release(95ae9a6)的
“^Final Word$”
肯定会失败,
“^Final Word$”
我对字符集的了解可能比你少。
MATCH('^Final Word$') order by weight() desc limit 1 desc  OPTION ranker=PROXIMITY_BM25
Match('"^Final Word$ "')