微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决自表编辑以来 SQL Server 全文索引未完全更新

设置信息:

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

文档表

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

我在表中添加一个SignTag (nvarchar),然后是问题开始发生的时候。

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

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

例如搜索“加班”只会显示一个文件,而不是它过去显示的四个文件

我尝试了一些东西:

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

我不知道为什么全文突然停止了与更改前一样多的收集。

sql 明智的没有改变,只是上面编辑了一个表。

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

解决方法

经过一番挖掘,我发现 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。