我有一个名字(姓氏)列表和一个简单的搜索机制。我想在搜索结果中显示有细微变化(错别字)的单词。
搜索文本示例:braniecka
示例结果:Branicka
, Kraniecka
,Braniecki
任何帮助表示赞赏。
您可以实现Levenshtein distance。它是一种广泛使用的算法。
您还可以考虑将您的解决方案升级到 Lucene,尤其是在您进行任何生产工作时。Lucene 以极其高效的方式处理您的需求(没有暴力穷举搜索)。
尝试使用 simmetrics。是一个用于测量字符串相似度的库,并实现了许多算法。