用于从关键字中检索相似单词的API?

时间:2010-06-25 15:01:13

标签: c# .net search keyword

我正在用C#编写搜索引擎,从SQL数据库中检索行。我希望搜索也包括类似的单词 - 例如,如果用户搜索“投资”,搜索也将返回“投资”匹配,或者如果用户搜索“财务”,搜索也将返回匹配“财务”。

如何从搜索关键字中检索类似的单词?

4 个答案:

答案 0 :(得分:3)

您正在寻找的是stemming。您可能希望查看Lucene.net中可用的内容...尽管SQL Server也可能通过全文索引本地支持此功能。实际上,看起来它是this article

答案 1 :(得分:3)

你想要完成的事情被称为“词干”。阅读维基百科文章了解更多信息:

http://en.wikipedia.org/wiki/Stemming

答案 2 :(得分:1)

如果您使用的是SQL Server,则可以使用支持stemming的FREETEXT搜索:

Select * from SomeTable
where FREETEXT(*,'invest')

以上搜索所有列的所有形式的单词invest。它相当于:

Select * from SomeTable
where CONTAINS(*,'"invest" or "invests" or "investor" 
                  or "investing'" or "invested" or "investor's" ... )

这是一个MSDN article,其中包含更多示例和文档。

答案 3 :(得分:0)

此外,soundex搜索可以帮助查找与类似语音相匹配的内容。 SQL Server SOUNDEX() function支持此功能。 .NET没有内置它,但CodeProject有several implementations