Azure SQL表SqlIntegratedChangeTrackingPolicy未触发认知搜索索引更新
排查索引器未识别SQL变更检测记录的缺失配置
- 确认索引器与变更检测策略的绑定
确保索引器自身的changeDetectionPolicy明确配置为SqlIntegratedChangeTrackingPolicy,不能仅在数据源层面配置。若索引器未关联该策略,会默认使用基础检测逻辑,无法读取SQL变更表的增量数据。 - 验证变更跟踪版本的同步性
执行SELECT CHANGE_TRACKING_CURRENT_VERSION()查看数据库当前变更版本,对比索引器运行日志中记录的最后读取版本。若索引器未更新版本号,大概率是权限不足或配置未开启版本追踪逻辑。 - 检查SQL账号权限
索引器使用的SQL登录账号必须具备以下权限:- 目标表的
VIEW CHANGE TRACKING权限 - 目标表及变更跟踪系统视图的
SELECT权限
权限缺失会导致索引器无法读取变更记录,即便变更表已有数据。
- 目标表的
- 确认索引器的触发机制
若索引器是手动触发模式,需手动启动运行;若为定时触发,要检查触发间隔是否合理,且当前时间已过触发节点。同时确认索引器未被设置为disabled状态。 - 验证数据源查询逻辑
若数据源使用自定义查询而非直接表映射,必须在查询语句中加入变更跟踪筛选逻辑,比如通过CHANGETABLE(CHANGES <表名>, <最后版本>)获取增量数据。仅查询原表无法自动关联变更记录。 - 检查变更跟踪的列覆盖范围
确认表的变更跟踪是否包含被修改的列。若设置了COLUMNS参数指定仅跟踪特定列,而修改的列不在范围内,变更表虽有记录,但索引器会判定为无需同步的变更。
内容的提问来源于stack exchange,提问作者Sean
相关产品推荐
相关产品推荐

