2

我有一个名为 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

我怎样才能做到这一点?

请帮忙。

4

2 回答 2

3

目前不可能在一张桌子上做到这一点。使用 SQL Server,您只能为使用一种语言的列编制索引。

微软的建议是使用中性断词器 ( http://technet.microsoft.com/en-us/library/ms142507.aspx )。

您的查询如下:

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

这样做的问题是,你没有得到打破该文本语言的明显好处。

您可以做的是使用该文化特定的分词器查看表和索引的每种文化:

例如TestTableGermanView

于 2013-10-13T19:42:06.250 回答
0

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

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

于 2015-09-25T19:30:11.140 回答