大家好,我在使用COLLATE忽略重音的同时还使用了Contains full text在这方面有些挣扎。
香港专业教育学院减少列搜索仅在这里的示例之一,并即时编码实际参数只是为了简单地做到这一点,直到我理解它。
如果我有
SELECT Col1, Title COLLATE SQL_Latin1_General_Cp850_CI_AI AS Title, ColX FROM Foo WHERE CONTAINS((Title), '"suenos" OR "french"')
这只会以法文返回结果。如果我在例如之后添加通配符:
WHERE CONTAINS((Title), '"suenos*" OR "french"')
我得到了Sue帽os和法语的搜索结果。Ive在LIKE和COLLATE中注意到了相同的行为,例如,它仅带有与’suenos’相对应的’suenous%’的单词。
为什么是这样?
非常感谢。
假设:您正在使用sql2005或更高版本。
我相信您在首次创建索引时需要将“口音敏感度”设置为“开”或“关”。
CREATE FULLTEXT CATALOG AwCat WITH ACCENT_SENSITIVITY=OFF GO
或更改它:
ALTER FULLTEXT CATALOG AwCat REBUILD WITH ACCENT_SENSITIVITY=ON GO
您可以在此处找到更多信息Microsoft SQL Server 9.0技术文章SQL Server 2005全文本搜索:内部和增强功能