设置信息:
- 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