Solr Lucene模糊匹配返回错误结果
我正在尝试为我的应用程序测试 SOLR 以查找字符串之间的百分比匹配。
我现在配置了 solr 并仅为名字匹配定义了模式,我在模式中使用了 text_general 数据类型(solr 3.3)。
在我的文档/csv中,我保留了单词“rushik”,在solr查询中,我尝试使用“rushk”进行搜索 - 故意删除“i”
理想情况下,使用levenshtein算法,上述两个字符串之间的距离为1,因此字符串之间的百分比匹配应该是( 1 - distance/maxLen(string1, string2)) 即 (1 - 1/6) = 0.83 - 这意味着两个字符串的匹配度为 83%。
但在 solr 中它的匹配直到我在查询中给出 rushk~0.79 - 当我使用 ~0.80、0.81 等时它与文档不匹配。
不确定我对 levenshtein 字符串匹配的计算是否不正确,或者我如何准确地确定问题出在哪里。
非常感谢这里的任何帮助。
谢谢, 鲁希克。
I am trying to test SOLR for my application for finding percentage match between strings.
I configured solr and defined schema only for first_name matching for now, I used text_general datatype in schema (solr 3.3).
In my document/csv I kept word "rushik" and in solr query I am trying to search with "rushk" - intentionally removed "i"
Ideally with levenshtein algorithm the distance is 1 between above two strings thus percentage match between strings should be (1 - distance/maxLen(string1, string2)) which is (1 - 1/6) = 0.83 - that means both strings are 83% match.
But in solr its matching till I give rushk~0.79 in query - when I am using ~0.80, 0.81 etc its not matching with document.
Not sure if my calculation of levenshtein string match is incorrect or how exactly I can determine where the problem is.
Any help here is highly appreciated.
Thanks,
Rushik.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
模糊查询的模糊百分比计算是 -
在你的情况下它将是 1 - 1/5 = 0.8
所以这似乎是有效的。
The fuzzy percentage calculation for fuzzy query is -
In your case it would be 1 - 1/5 = 0.8
So this seems valid.