自定义编辑Lucene FuzzySearch中操作的距离权重

m3eecexj  于 2022-11-23  发布在  Lucene
关注(0)|答案(1)|浏览(106)

我偶然发现了这个python库https://pypi.org/project/weighted-levenshtein/,它允许为不同的操作(插入,替换,删除和转置)指定不同的成本/权重,这对检测和纠正击键错误非常有帮助。
我一直在搜索Lucene库FuzzySearch,它使用Damerau-Levenstein距离来检查是否支持为不同的操作指定不同的成本/权重,但没有找到任何。
请让我知道,如果有一种方法来指定我们的自定义成本/权重在Lucene模糊搜索。
提前感谢!

afdcj2ne

afdcj2ne1#

为了支持模糊匹配,lucene使用LevenshteinAutomata类编译AutomatonLevenshteinAutomata类实现了this algorithm,不仅不支持编辑权重,而且只支持0到2个编辑的匹配。
如何编辑此算法以生成支持加权编辑的自动机超出了我的知识范围,但值得一试,因为它会使您的定制变得简单(只需覆盖getAutomaton方法),并(理论上)保持性能一致。
另一种选择是放弃自动机来支持模糊匹配的想法,而直接在实际的模糊匹配检查中实现一个加权的levenshtein算法,就像您链接到的那个算法一样。然而,这样做可能会付出相当高的性能代价,这取决于您处理的模糊查询的性质和索引的内容。

相关问题