【问题标题】:How to ignore noiseXXX.txt files for a specific column in SQL Server 2005?如何忽略 SQL Server 2005 中特定列的 noiseXXX.txt 文件?
【发布时间】:2012-06-21 15:10:32
【问题描述】:

我有一个产品表,其中描述列是全文索引的。

问题是,用户经常搜索一个单词,恰好在noiseXXX.txt文件中。

我们希望保持启用干扰词功能,但有没有办法仅针对这一列将其关闭?

我认为您可以在 2008 with the SET STOPLIST=OFF 中执行此操作,但我似乎无法在 SQL Server 2005 中找到类似的功能。

【问题讨论】:

    标签: sql-server sql-server-2005 full-text-search full-text-indexing


    【解决方案1】:

    在 SQL Server 2005 中,干扰词列表应用于整个服务器。您可以通过删除相应的干扰词文件然后重新构建全文索引来禁用整个服务器的干扰词。但我不相信在 SQL Server 2005 中可以选择性地禁用单个表的干扰词。参见例如hereherehere

    在 SQL Server 2008 中,FTS 从使用干扰词文件转变为停止列表。停止列表是包含不包含在全文索引中的停用词集合的容器,并替换了干扰词文件的功能。

    在 SQL Server 2008(仅兼容级别 100)中,您可以为给定语言创建多个停止列表,并且可以为各个表指定停止列表。也就是说,一个表可以使用给定的非索引字表,第二个表可以使用不同的非索引字表,第三个表可以完全不使用非索引字表。停止列表设置适用于整个表,因此如果您在单个表中索引了多个列,则它们都必须使用相同的停止列表。

    因此,为了回答您的问题,我认为 SQL Server 2005 中不可能有选择地禁用单个表的干扰词,同时将它们留给其他表。如果这对您不利,这可能是将您的服务器升级到 SQL Server 2008 或 2012 的好机会。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 2011-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-18
      相关资源
      最近更新 更多