如何为多语言列创建全文索引?

时间:2013-10-09 08:52:05

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

我有一个名为TestTable的表,其中包含以下架构。

---------------------------------------------------------
ID(Integer) | Text(nvarchar(450)) | LanguageCode(Integer)
---------------------------------------------------------

其中ID是主键,Text列包含多种语言的文本字符串。

我想在上表中创建一个全文索引。

CREATE FULLTEXT INDEX ON TestTable
 ( 
  Text
     Language <Should get language code from Language column>,
 ) 
  KEY INDEX PK_TestTableID; 
GO

我怎样才能做到这一点?

请帮忙。

2 个答案:

答案 0 :(得分:3)

目前在单张桌子上做这件事是不可能的。使用SQL Server,您只能使用单一语言索引列。

Microsoft建议使用中性断字符(http://technet.microsoft.com/en-us/library/ms142507.aspx)。

您的查询如下:

SELECT Description 
FROM Asset 
WHERE FREETEXT(Description, 'Cats', 'de-DE');

这个问题在于你没有明白打破该文本语言的好处。

你可以做的是查看表格和索引的每种文化,并使用特定文化的词语破坏者:

例如TestTableGermanView

答案 1 :(得分:0)

我在SQL文档中偶然发现了这一点。我没有深入挖掘,但它看起来很有趣。

“对于纯文本内容 - 当您的内容是纯文本时,您可以将其转换为xml数据类型,并添加指示与每个特定文档或文档部分对应的语言的语言标记。但是,为此,您可以使用需要在全文索引之前了解语言。“ https://technet.microsoft.com/en-us/library/ms142507.aspx