egr*_*nin 12 sql-server full-text-search sql-server-2005 internationalization
有没有办法在多语言表中使用FULLTEXT而不为每种语言提供自己的列?
我有一个我需要搜索的列,但该列中的语言有所不同:
ProductID int
Description nvarchar(max)
Language char(2)
Run Code Online (Sandbox Code Playgroud)
Language可以是一个:en,de,it,kr,th
目前,我建立了一致性并将其用于搜索.但这仅适用于英语,德语和意大利语,甚至适用于那些不支持词干的人.其他所有用途LIKE '%searchterm%',我都在努力改进.
我正在使用SQL Server 2005.
引用 Microsoft 关于CREATE FULLTEXT INDEX的参考:
对于包含多种语言文本数据的非 BLOB 和非 XML 列,或者列中存储的文本语言未知的情况,使用中性 (0x0) 语言资源可能比较合适。但是,首先您应该了解使用中性 (0x0) 语言资源可能产生的后果。有关使用中性 (0x0) 语言资源的可能解决方案和后果的信息,请参阅创建全文索引时选择语言的最佳实践。
我知道这是一个老问题,但我刚刚遇到它。
我见过的一种方法是使用 XML 列并指定属性xml:lang。如CREATE FULLTEXT INDEX (Transact-SQL)中所述。
对于存储在 XML 或 BLOB 类型列中的文档,将在索引时使用文档中的语言编码。例如,在 XML 列中,XML 文档中的 xml:lang 属性将标识语言。在查询时,先前在 language_term 中指定的值将成为用于全文查询的默认语言,除非将 language_term 指定为全文查询的一部分。
这种方法的主要缺点是它将数据类型更改为 XML,但它似乎可以很好地满足我们当时的需求。
| 归档时间: |
|
| 查看次数: |
4488 次 |
| 最近记录: |