我有一个nvarchar列,其中包含英语和日语文本。我想在此列上进行全文搜索。在配置全文搜索时,我们需要为分词系统指定语言选项(例如,使用英语分词系统或使用日语分词系统)。我想知道在这种情况下应该分配哪种语言?我不确定日语工作中断程序是否也适用于英语。

我正在使用SQL Server 2008 Enterprise。

提前致谢,
乔治

最佳答案

如果您有一列包含不同语言(特别是西方和非西方语言)的列,则应选择中性断词。

还有其他一些选择,例如

  • 按每种语言分隔列(如@Tony所述)
  • (如果您的数据是纯文本);将其转换为xml数据类型并添加语言标记,这些标记指示全文引擎使用的语言。
  • 开发自定义断词器(尽管这不是最佳解决方案)

  • 这是有关创建全文索引时选择语言的最佳实践的article

    在评论后添加

    可以根据您的用例以多种方式查询多列。最简单的方法是使用CONTAINS谓词通过指定要搜索的列列表来查询多列,如下所示;
    SELECT Name, Color FROM Production.Product
    WHERE CONTAINS((Name, Color), 'Red');
    

    另一种解决方案可能是使用可在CASE / IF语句中使用的语言指示符列,该列可帮助您有条件地按语言划分查询。您也可以使用DATALENGTH()TSQL函数检查它是否为空,并决定选择哪一列。

    关于sql - 关于SQL中的全文查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3957949/

    10-12 18:39