我已经为数据库名称下的列创建了一个全文目录 -> “存储” -> 全文目录。它区分重音并且“默认目录”设置为 false。“SearchData”列的语言设置为瑞典语。
我正在使用一个调用 contains 函数的存储过程,如下所示:
CREATE PROCEDURE [dbo].[SearchPages]
@Term varchar(200)
AS
BEGIN
SELECT pc.SearchData from PageContent pc
where contains(pc.SearchData, @Term)
END
当我搜索“smörgås”(瑞典语“三明治”)时,我搜索到“smörgåsbord”,但没有搜索到“smörgåsar”(瑞典语“三明治”)。
显然,它只命中包含搜索词的组合词,而不是复数形式。
我们的客户希望在搜索框中放入单数形式进行搜索。
那有可能获得吗?如果您可以搜索“goose”并找到“geese”,那就太好了。
您可以将 CONTAINS 与 FORMSOF(INFLECTIONAL, smörgås) 或 FREETEXT 一起使用
包含:
FREETEXT(自动包括 INFLECTIONAL 和其他一些东西):
尝试以这种方式设置 @Term 变量(双引号和星号很重要):
或者您可以尝试为“goose”和“geese”等同义词设置词库:http: //msdn.microsoft.com/en-us/library/ms142491.aspx