SQL 服务器全文索引自 table 编辑后未完全更新

SQL Server full text indexing not fully updating since table edit

设置信息:

文档table

我在 table 中添加了一个列 SignTag (nvarchar),之后问题开始出现。

全文索引 运行 在我们的服务器上暂时正常,但是一旦 table 被编辑,它就停止向目录中添加那么多了。

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

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

我尝试了一些方法:

不知道为什么全文突然停止收录,跟改之前一样

SQL 明智的是,上面唯一的 table 编辑没有任何改变。

还有其他人运行参与其中吗?

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