【问题标题】:How to create full text index for a multi language column?如何为多语言列创建全文索引?
【发布时间】:2013-10-09 08:52:04
【问题描述】:

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

我怎样才能做到这一点?

请帮忙。

【问题讨论】:

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


    【解决方案1】:

    目前在一张桌子上是不可能的。使用 SQL Server,您只能使用一种语言为列建立索引。

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

    您的查询如下:

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

    这样做的问题是,您不会从破坏该文本的语言中获得明显的好处。

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

    例如 TestTableGermanView

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2014-02-12
        • 1970-01-01
        • 2014-09-01
        • 2021-11-13
        • 1970-01-01
        • 1970-01-01
        • 2016-06-20
        • 1970-01-01
        • 2011-03-20
        相关资源
        最近更新 更多