SQL Server全文搜索与北欧字符

时间:2016-06-02 08:26:15

标签: sql sql-server full-text-search

我正在尝试使用我的应用程序进行全文搜索,但遇到了一个我不知道如何修复的问题。

采取此查询:

SELECT * FROM Books
WHERE CONTAINS(([Description], ReverseDescription), '"øgle"')
对于那些想知道的人来说,对于lizzard来说,这是一个丹麦语。这个查询给出了37个结果,这是完全合理的,你会想。

现在,请进行以下查询:

SELECT * FROM Books
WHERE CONTAINS(([Description], ReverseDescription), '"ogle"')

它给出了完全相同的37个结果。这是为什么?似乎无论我搜索哪个字符'o'或'ø',它都找到了。这适用于'æ'和'a'。

任何可以对此有所了解的人?

2 个答案:

答案 0 :(得分:0)

更改COLLATE Latin1_General_CS_AS

例如查询将看起来像

SELECT * FROM Books
   WHERE CONTAINS(([Description], ReverseDescription), '"øgle*"')
 AND [Description] COLLATE Latin1_General_CS_AS LIKE '%"øgle*"%' 

答案 1 :(得分:0)

启用重音敏感度解决了这个问题。 这可以这样做:

ALTER FULLTEXT CATALOG "your_fulltext_catalog"
REBUILD WITH ACCENT_SENSITIVITY = ON;