我不知道是否主要SQL引擎在那里(MS SQL,Oracle,MySQL等)必须明白,因为它们共享同一个根2个字是相关的能力。

我们知道这是容易搭配“网络”的“网络”进行搜索时,因为后者是前者的子字符串。

但做SQL引擎有一个可以搜索匹配时,“网络”为“联网”功能?

非常感谢。

有帮助吗?

解决方案

此功能被称为词干 :在一个算法,可以从任何形式的字推导出干。

这可以说是相当复杂的:例如,俄语单词шёлиду不同形式的同一个动词,尽管他们没有一个共同的信(讽刺的是,这也适用于英语:wentgo)。

断词也可以是某些语言使用单词之间没有空格一个相当复杂的任务。

SQL Server允许使用用于其全文检索引擎可插拔词干和分词:

http://msdn.microsoft.com/en-us/library/ ms142509.aspx

其他提示

我觉得题目是“语义相似性”。有一些努力试图找到这个问题的最佳解决方案。

您可以尝试使用同音,虽然它可能不是你想要什么。请参见 http://www.codeproject.com/KB/database/Phonetic_Search_MSSQL.aspx

正如Quassnoi指出的那样,这可以用词干来完成。 PostgreSQL实现了它全文搜索如果你打开它。

ALTER TEXT SEARCH CONFIGURATION blah_en ADD MAPPING FOR english_stem;

此使用雪球字典,它是基于波特词干。波特词干可能是最广泛使用的词干之一,因此它会给像样的成绩。要记住这一点很重要,虽然,词干并不总是准确的,因为你可能会喜欢的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top