2011-06-20 62 views
3

我试图建立一个搜索,让我做到这一点我怎样才能实现这个搜索

要搜索的字符串

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

我想知道是否可以使用containsfreetext。我也一直在考虑在c#中的一个方法中按字符匹配来加载所有记录,因为这里只有300个,并且构成了等于的百分比。但这只是有人可以帮助我的想法。

UPDATE

我试图与功能的同音,但它并不能帮助我了...

+0

你真的想在搜索中将'input'换成'text'吗? –

+0

@Abe Miessler对不起,我的错误,我已经修改问题 – Jorge

+0

这是很不清楚,你如何搜索...“搜索字符串”只需要包含“使用输入”?另外,你指的是什么记录,以及“等于百分比”?你只是想在SQL数据库中搜索条目吗?请澄清。 –

回答

2

如果您希望对数据进行一次性调整,您可能最好加载两个列表以匹配C#,然后使用edit distance算法(如Levenshtein Distance)来遍历最佳匹配。可能非常耗时,但就像我说的 - 如果你只需要做一次...

你可以在SQLServer中实现这个算法作为函数(谷歌将会找到你很多人已经为你做了这个...)。此外,诸如这些算法可能会给人们提供不必要的或意想不到的匹配,因为人类匹配器会选择另一种替代方案。

小心!

0

你可以使用一个替代方法。

var stringToSearch = userInputText.Replace('_','');

+1

嗨,感谢提问笔记用户放在可能会改变我改变我的问题,使其更清晰 – Jorge

0

尝试Soundex

+0

嗨,并感谢询问我尝试过,但对于多个词它不是最好的工具 – Jorge