SQL Server全文索引自表编辑以来没有完全更新



设置信息:

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

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

我添加了一个列SignTag(nvarchar)到表中,之后就是问题开始发生的时候。

全文索引在我们的服务器上运行得很好,但是一旦表被编辑,它就不再向目录中添加那么多了。

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

搜索"overtime"将只显示一个文件,而不是原来显示的四个文件。

我已经尝试了一些事情:

  • 先禁用后启用FTI
  • 删除FTI,然后重新设置(包括目录文件)
  • 点击完全填充,重建和更新,其中没有改变任何东西。

我不知道为什么全文突然停止收集,因为它做了改变之前。

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

还有其他人遇到过这种情况吗?

经过一番挖掘,我发现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:转到services find SQL全文过滤守护进程启动程序(MSSQLSERVER),然后右键重启。

4:告诉FTS目录重建。

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

SELECT * FROM sys.fulltext_document_types

最新更新