Sphinx与列字符串完全匹配

时间:2017-04-21 17:45:55

标签: sphinx

我以为

Match('^Word$')

只会找到完全属于'Word'的记录

然而,虽然这对单个单词有用,但不适用于多个单词:

Match ('^Final Word$')

找到'最后的词'和'最后和最后的词'。

一样
Match ('^"Final Word"$')

如何告诉Sphinx只找到完全匹配?

更新:经过一些测试后,最佳我可以做的是加权/排名和没有“”

MATCH('^Final Word$') order by weight() desc limit 1 desc  OPTION ranker=PROXIMITY_BM25

所以我强迫完全匹配排名和限制,仍然很高兴知道如何实际说'只返回完全匹配'。

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

2 个答案:

答案 0 :(得分:0)

您的操作员输入错误:)

Match('"^Final Word$ "')

(在$之后有一个空格有助于一些神秘的狮身人面像虫!)

答案 1 :(得分:0)

所以问题是,在我努力使这项工作迈出的一步是指定排名

Option Ranker=PROXIMITY_BM25

到目前为止对我有用的

。实际上是什么

Match('^Final Word$')

然后不指定排名或指定extended如果配置中的排名是否定义(默认为extended)。