2010-06-25 63 views
1

我正在用C#編寫一個搜索引擎,從SQL數據庫中檢索行。我希望搜索也包含類似的詞 - 例如,如果用戶搜索「投資」,搜索也會返回「投資」匹配,或者如果用戶搜索「財務」,搜索也會返回匹配「財務」。用於從關鍵字中檢索相似單詞的API?

如何從搜索關鍵字中檢索類似這樣的詞?

回答

3

您要找的是stemming。您可能需要查看Lucene.net中的可用內容...儘管SQL Server也可能使用全文索引來本地支持此功能。確實,它看起來像是,給出this article

1

如果您正在使用SQL Server,你可以採取FREETEXT搜索,它支持stemming的優勢:

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

上面搜索所有列投資的所有形式的詞。它相當於:

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

以下是MSDN article的更多示例和文檔。