Solr-Lucene模糊匹配返回错误结果

Solr-Lucene模糊匹配返回错误结果,lucene,solr,levenshtein-distance,Lucene,Solr,Levenshtein Distance,我正在尝试为我的应用程序测试SOLR,以查找字符串之间的百分比匹配 我配置了solr,并定义了仅用于名匹配的模式。目前,我在模式(SOLR3.3)中使用了文本通用数据类型 在我的文档/csv中,我保留了单词“rushik”,而在solr查询中,我试图用“rushk”进行搜索——故意删除了“I” 理想情况下,使用levenshtein算法,上述两个字符串之间的距离为1,因此字符串之间的匹配百分比应为(1-距离/maxLen(string1,string2)),即(1-1/6)=0.83-这意味着两

我正在尝试为我的应用程序测试SOLR,以查找字符串之间的百分比匹配

我配置了solr,并定义了仅用于名匹配的模式。目前,我在模式(SOLR3.3)中使用了文本通用数据类型

在我的文档/csv中,我保留了单词“rushik”,而在solr查询中,我试图用“rushk”进行搜索——故意删除了“I”

理想情况下,使用levenshtein算法,上述两个字符串之间的距离为1,因此字符串之间的匹配百分比应为(1-距离/maxLen(string1,string2)),即(1-1/6)=0.83-这意味着两个字符串的匹配率为83%

但在solr中,它与文档不匹配,直到我在查询中给出了rushk~0.79——当我使用~0.80、0.81等时,它与文档不匹配

不确定我对levenshtein字符串匹配的计算是否不正确,或者我如何准确地确定问题所在

非常感谢您的帮助

谢谢,
Rushik.

模糊查询的模糊百分比计算为-

distance = 1 - ((double)dist / (double)Math.min(textlen, targetlen));
return (distance > FUZZY_THRESHOLD);
在你的情况下,它将是1-1/5=0.8
所以这似乎是正确的。

谢谢Jayendra,但我在计算中发现ppl的大多数地方都使用了最大长度,你知道SOLR设置为最小值的确切原因吗?不确定。您可以检查源代码@