我想在我的自定义类的输入上执行文本搜索。该文本搜索不仅应匹配输入的字符串,还可以检查拼写错误的单词。所以我正在寻找一个能为我做这件事的图书馆。
更多上下文: 假设我从SQLServer2008数据库生成此业务对象:
public class MyTextObject
{
public String Title {get;set;}
public String Content {get;set;}
}
在我的申请表中,我有一个
List<MyTextObject>
并想要搜索单词“control”。搜索应返回标题或内容属性中具有单词“control”的任何MyTextObject。到目前为止没有问题:我可以使用LINQ-Expression轻松完成此操作。
这是棘手的部分:
让我们说在我的一个业务对象中,我想写“控制”,但我写的是“控制”。我希望搜索算法能够表明业务对象
如何以非暴力方式执行此操作以查找搜索键的可能排列?是否有任何算法或库可以帮助我解决这种情况?
我也愿意接受其他好的建议=)
答案 0 :(得分:2)
我可以给你一个简单的想法,我们已经跟随。
首先,我们搜索les say的词是“contrlo”。 如果找不到这个词,我们会对拼写进行自动更正,为我们提供“控制”一词(可能还有更多),现在我们会搜索更正的词。
您可以找到许多拼写更正。
我建议使用dtSearch。它的商业,但我说这是值得的。他们给出了一个简单的dll,可以用很多参数进行真正的搜索。
答案 1 :(得分:1)
如果我没弄错的话,你需要一些模糊的字符串匹配算法。我前段时间做了类似的事情,我使用了Levenshtein Distance,我相信this is the code that I ripped off。我很满意。