适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
排查全文索引失败问题
在填充或维护全文索引时,全文索引器可能无法索引一个或多个行,原因如下表所述。 这些行级错误不会阻止填充完成。 索引器跳过这些行,这意味着你无法查询这些行中包含的内容。
在以下情况下,可能会发生索引失败:
索引器找不到或无法加载筛选器或分词组件。 如果表格行包含的文档格式或内容是未注册在SQL Server实例中的语言,就会发生这种失败。 如果已注册的分词器或筛选器组件未签名,或者在加载组件时签名验证失败,也可能发生这种失败。 Azure SQL 和 Azure SQL 托管实例 不支持第三方词断符。
组件,如词断开器或过滤器,失败时会返回错误到索引器。 如果被索引的文档损坏,过滤器无法从文档中提取文本,就会发生这种失败。 当组件无法处理超过某一行大小的内容时,也会发生这种故障,原因是全文过滤守护进程主机
fdhost.exe()的内存限制。
对于每个行级别的失败,爬网日志将包含有关失败原因的详细信息。 将在完整或增量填充的末尾总计错误计数。
其他故障可能会影响索引流程,并导致填充过程无法完成:
全文索引超过了全文目录可包含行数的限制。
你修改、删除或重建被索引表上的聚类索引或全文键索引。
硬件故障或磁盘损坏导致全文目录遭到破坏。
包含全文索引表的文件组将离线或改为只读。
在任何重要的全文索引种群操作结束时,或发现某个种群未完成时,查看爬取日志。
无符号组件
默认情况下,全文索引器要求它所加载的筛选器和断字符经过签名。 如果它们未经签名(安装自定义组件时可能会出现这种情况),您必须将全文索引器配置为忽略签名验证。
重要
忽略签名验证将降低 SQL Server 实例的安全性。 你应签署你实施的任何组件,或确保你购买的任何组件都已签署。 有关签署组件的信息,请参见 sp_fulltext_service。
交易日志恢复后全文索引状态不一致
在恢复数据库的交易日志时,你可能会看到警告,提示全文索引状态不一致。 此警告出现是因为数据库备份后,表上的全文索引被修改。 若要使全文索引处于一致状态,必须对表执行完全填充(爬网)。 有关详细信息,请参阅 填充全文索引。