题
我不知道是否主要SQL引擎在那里(MS SQL,Oracle,MySQL等)必须明白,因为它们共享同一个根2个字是相关的能力。
我们知道这是容易搭配“网络”的“网络”进行搜索时,因为后者是前者的子字符串。
但做SQL引擎有一个可以搜索匹配时,“网络”为“联网”功能?
非常感谢。
解决方案
此功能被称为的词干强> :在一个算法,可以从任何形式的字推导出干。
这可以说是相当复杂的:例如,俄语单词шёл
和иду
不同形式的同一个动词,尽管他们没有一个共同的信(讽刺的是,这也适用于英语:went
和go
)。
断词也可以是某些语言使用单词之间没有空格一个相当复杂的任务。
SQL Server
允许使用用于其全文检索引擎可插拔词干和分词:
其他提示
我觉得题目是“语义相似性”。有一些努力试图找到这个问题的最佳解决方案。
您可以尝试使用同音,虽然它可能不是你想要什么。请参见 http://www.codeproject.com/KB/database/Phonetic_Search_MSSQL.aspx
正如Quassnoi指出的那样,这可以用词干来完成。 PostgreSQL实现了它全文搜索如果你打开它。
ALTER TEXT SEARCH CONFIGURATION blah_en ADD MAPPING FOR english_stem;
此使用雪球字典一>,它是基于波特词干。波特词干可能是最广泛使用的词干之一,因此它会给像样的成绩。要记住这一点很重要,虽然,词干并不总是准确的,因为你可能会喜欢的。
不隶属于 StackOverflow