Sql-server全文CONTAINS + COLLATE忽略重音问题

Jam*_*min 4 sql sql-server full-text-search

嗨所有我在这里挣扎一点使用COLLATE忽略重音同时也使用包含全文.

我已经减少了列,我只搜索一个这里的例子,并且我很难编码实际参数只是为了这个直到我理解它.

如果我有

SELECT 
     Col1,
     Title COLLATE SQL_Latin1_General_Cp850_CI_AI AS Title,
     ColX
FROM
     Foo
WHERE 
     CONTAINS((Title),  '"suenos" OR "french"') 
Run Code Online (Sandbox Code Playgroud)

这只会返回法语结果.如果我添加外卡后,例如:

 WHERE 
     CONTAINS((Title),  '"suenos*" OR "french"') 
Run Code Online (Sandbox Code Playgroud)

我得到了Sueños和法语的结果.我注意到了LIKE和COLLATE的相同行为,例如它只有'suenous%'的词与'suenos'相对应.

为什么是这样?

非常感谢.

Gle*_*lar 8

假设:您使用的是sql2005或更高版本.

我相信你需要在首次创建索引时将Accent Sensitivity设置为ON或OFF.

CREATE FULLTEXT CATALOG AwCat WITH ACCENT_SENSITIVITY=OFF
GO
Run Code Online (Sandbox Code Playgroud)

或改变它:

ALTER FULLTEXT CATALOG AwCat REBUILD WITH ACCENT_SENSITIVITY=ON
GO
Run Code Online (Sandbox Code Playgroud)

您可以在此处了解更多信息Microsoft SQL Server 9.0技术文章SQL Server 2005全文搜索:内部和增强功能