C# 100k以上的快速动态模糊搜索&x2B;C中的字符串#
假设它们是预加载的股票符号,输入到文本框中。我正在寻找我可以复制的代码,而不是要安装的库 这是受到这个问题的启发: Levenstein距离算法似乎运行良好,但计算起来需要时间。C# 100k以上的快速动态模糊搜索&x2B;C中的字符串#,c#,algorithm,.net-4.0,fuzzy-search,text-search,C#,Algorithm,.net 4.0,Fuzzy Search,Text Search,假设它们是预加载的股票符号,输入到文本框中。我正在寻找我可以复制的代码,而不是要安装的库 这是受到这个问题的启发: Levenstein距离算法似乎运行良好,但计算起来需要时间。 当用户键入额外的字母时,查询需要重新运行,这一事实是否有任何优化?我对每个输入最多显示前10个匹配项感兴趣。您需要确定字符串周围的匹配规则。什么决定了“相似字符串” 匹配字符数 不匹配字符数 相似长度 拼写错误 业务专用缩写 必须以相同的子字符串开头 必须以相同的子字符串结尾 我已经在字符串匹配算法方面做了很多工
当用户键入额外的字母时,查询需要重新运行,这一事实是否有任何优化?我对每个输入最多显示前10个匹配项感兴趣。您需要确定字符串周围的匹配规则。什么决定了“相似字符串”
- 匹配字符数
- 不匹配字符数
- 相似长度
- 拼写错误
- 业务专用缩写
- 必须以相同的子字符串开头
- 必须以相同的子字符串结尾
现在,对于LevsHeTin匹配,你遍历了字母树,同时允许一些错误:删除、插入(一个字母通配符)和可能的转位(LevsTein的一个很好的扩展是考虑作为单个编辑的转置而不是2)。您必须保持状态,以便跟踪允许的编辑数量。这可以非常有效地完成-当然足够快的互动“当你键入”拼写提示 阿福日有一些模糊的东西,但从来没有详细阅读过。谢谢。我在这里找到了一篇相关的论文: