我如何知道 SQL 服务器全文搜索何时已将记录编入索引?

How can I know when SQL Server Full Text Search has indexed a record?

我的问题与这个类似: How can I know when SQL Full Text Index Population is finished? 我只需要知道 SQL 服务器全文搜索 (FTS) 是否已经索引了 table.

中的某些记录,而不是整个索引的人口状况

换句话说,给定一个来自 table 的键,有没有办法检查该行是否已经被 FTS 守护程序拾取、分析并包含到相应的 FTS 索引中?

问题是因为我想搭载 FTS 并使用 CONTAINS 检查新添加的行是否符合某些条件。

使用sp_fulltext_keymappings。如果此结果集中存在 key = [primary key value from your table] 的记录,则索引 table 记录。

要获取已编入索引的所有记录的列表:

declare @objectId int = OBJECT_ID('dbo.Table1')
exec sp_fulltext_keymappings @objectId

要确定单个记录是否已编入索引,请将主键值作为下面查询中的第三个参数传递。如果结果集为空,则记录未编入索引。

declare @objectId int = OBJECT_ID('dbo.Table1')
exec sp_fulltext_keymappings @objectId, null, 1