【问题标题】:SQL Server full text indexing not fully updating since table edit自表编辑以来,SQL Server 全文索引未完全更新
【发布时间】:2021-05-28 06:45:54
【问题描述】:

设置信息:

  • 在 Windows Server 2019 上运行的 SQL Server 2019
  • 使用 SSMS 设置全文

文档表

  • 内容栏(varbinary);这包含不同的文件类型 pdf、doc、txt、Excel 等......
  • 扩展列 (nvarchar)

我在表格中添加了一个列 SignTag (nvarchar),然后问题开始发生。

全文索引在我们的服务器上运行了一段时间,但是一旦表格被编辑,它就停止向目录中添加尽可能多的内容。

之前它大约有 200k 个结果,但在编辑之后它只显示大约 86k,这导致搜索结果要么没有结果,要么不显示所有结果。

搜索“超时”的示例只会显示一个文件,而不是之前显示的四个文件。

我尝试了一些方法:

  • 禁用然后启用 FTI
  • 删除 FTI,然后将其备份(包括目录文件)
  • 点击完全填充、重建和更新,这些都没有改变。

我不确定为什么全文突然停止收集,就像更改前一样。

在 SQL 方面,没有任何改变只是上面的一个表编辑。

有没有其他人也遇到过这种情况?

【问题讨论】:

    标签: sql ssms sql-server-2019


    【解决方案1】:

    经过一番挖掘,我发现 Microsoft Office 过滤器包已被卸载,但我们从未注意到,因为索引目录在它拥有包时就已经构建了。

    它现在只在添加新列时出现,它会重建导致问题的 FTS 目录。

    由于缺少过滤器包,并非所有文档类型都可用于 FTS,这就是为什么我们只得到 86k 而不是之前的 200k。仅举出我们缺少的两种主要文件类型。 pptx xlsx

    修复:

    1:安装 Microsoft Office 2010 过滤器包(我的服务器为 64 位)

    2:运行此查询以更新 sql 文档类型。

    EXEC sp_fulltext_service 'update_languages';
    EXEC sp_fulltext_service 'load_os_resources', 1;
    EXEC sp_fulltext_service 'restart_all_fdhosts';
    

    3:到服务中找到SQL全文过滤守护进程启动器(MSSQLSERVER)然后右键重启。

    4:告诉 FTS 目录重建。

    之后,您可以运行此查询以确认再次添加所有文档类型。

    SELECT * FROM sys.fulltext_document_types
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 2019-05-02
      • 1970-01-01
      • 2016-02-14
      相关资源
      最近更新 更多