【发布时间】:2012-10-16 09:03:53
【问题描述】:
我有一个非常大的数据库,其中包含数十亿字。我需要在这些词中搜索,我知道的最快方法是使用 SQL SERVER 2008 附带的 iFTS。
数据为土耳其语。我的意思是数据的语言是土耳其语。 SQL SERVER 2008 可以毫无问题地处理全文搜索,即使是土耳其语。
但是当我尝试按此处所述列出全文单词时会出现问题:http://technet.microsoft.com/en-us/library/cc280900.aspx
从 sys.dm_fts_index_keywords 返回的词列是 keyword 和 display_term。但是这些列的字符集不正确。例如,土耳其字符集中同时存在 ı 和 i。类似地 o 和 ö、g 和 ğ。但是返回的单词是 ascii 编码的。就像 kör 以 kor 的形式返回,而 için 以 icin 的形式返回。
但是当我进行 CONTAINS 搜索时,SQL Server 匹配搜索词正确返回真实结果。我的意思是用 kör 和 kor 搜索会返回不同的结果,这是真正的行为。
所以我需要获取存储在 SQL 中的单词,而不是它们的 ascii 表示形式。
我希望我能解释我的问题。
【问题讨论】:
-
我有 1 个小问题,你正在从这个 sys.dm_fts_index_keywords 函数中读取数据 它仅用于检查它的索引方式,搜索词也会发生变化,然后它将与索引列进行比较。通过 contains 或 FULLTEXT 获取全文键并从主表中读取值。
标签: sql-server sql-server-2008 full-text-search