我正在尝试开发一种允许我完成此操作的搜索
要搜索的字符串
This is a text
用户输入
this_is_a_text
this a text
tihs a txt <----notes that the user made a wrong input
但始终给了我this is a text
我想知道是否可以使用contains
和freetext
。我也一直在考虑在c#中加载所有记录的方法中逐个字符地匹配,因为只有300个并且构成等于的百分比。但这只是有人帮助我的想法。
更新
我尝试使用函数soundex,但它对我没什么帮助......
答案 0 :(得分:2)
如果您想要对数据进行一次性对帐,则最好加载两个列表以匹配C#,然后使用edit distance算法(例如Levenshtein Distance)来迭代最佳匹配。可能非常耗时,但就像我说的 - 如果你只需做一次......
您可以将此算法实现为SQLServer中的一个函数(谷歌搜索会找到很多已经为您完成此操作的人...)。此外,诸如此类的算法可以提供不需要的或意外的匹配,其中人类匹配器将选择另一种替代方案。
小心!
答案 1 :(得分:0)
您可以使用替换方法。
var stringToSearch = userInputText.Replace('_','');
答案 2 :(得分:0)
尝试Soundex。