管理和监视语义搜索

适用范围:SQL Server

本文介绍如何检查索引状态和大小、强制填充以及禁用或重新启用语义索引。 语义索引与全文索引结合,分两个阶段进行。

检查语义索引编制的状态

语义索引编制的第一阶段是否已完成?

查询 sys.dm_fts_index_population 动态管理视图,检查 status 和 status_description 列。

索引编制的第一阶段包括填充全文关键字索引和语义关键短语索引,以及提取文档相似性数据。

USE database_name;
GO

SELECT *
FROM sys.dm_fts_index_population
WHERE table_id = OBJECT_ID('table_name');
GO

语义索引编制的第二阶段是否已完成?

查询 sys.dm_fts_semantic_similarity_population 动态管理视图,并检查其中的 status 和 status_description 列。

索引编制的第二阶段包括填充语义文档相似性索引。

USE database_name;
GO

SELECT *
FROM sys.dm_fts_semantic_similarity_population
WHERE table_id = OBJECT_ID('table_name');
GO

检查语义索引的大小

语义关键短语索引或语义文档相似性索引的逻辑大小是多少?

查询 sys.dm_db_fts_index_physical_stats 动态管理视图。

逻辑大小以索引页数显示。

USE database_name;
GO

SELECT *
FROM sys.dm_db_fts_index_physical_stats
WHERE object_id = OBJECT_ID('table_name');
GO

全文目录的全文索引和语义索引的总大小是多少?

查询 IndexSizeFULLTEXTCATALOGPROPERTY 元数据函数的属性。

SELECT FULLTEXTCATALOGPROPERTY('catalog_name', 'IndexSize');
GO

有多少项编入全文目录的全文索引和语义索引?

查询 ItemCountFULLTEXTCATALOGPROPERTY 元数据函数的属性。

SELECT FULLTEXTCATALOGPROPERTY('catalog_name', 'ItemCount');
GO

强制填充语义索引

你可以通过使用 START、STOP、PAUSE 或 RESUME POPULATION 子句强制填充全文和语义索引,其语法和行为与全文索引描述的相同。 更多信息,请参见 ALTER FULLTEXT INDEX 和 填充全文索引。

由于语义索引编制依赖于全文索引编制,因此仅在填充关联的全文索引后填充语义索引。

示例:创建一个完整的全文索引和语义索引群体

以下示例通过修改 AdventureWorks2025 示例数据库中 Production.Document 表上的现有全文索引,启动全文索引和语义索引的完全填充。

USE AdventureWorks2025;
GO

ALTER FULLTEXT INDEX ON Production.Document
    START FULL POPULATION;
GO

禁用或重新启用语义索引

您可以使用 ENABLE 或 DISABLE 子句来启用或禁用全文索引或语义索引,其语法和行为与全文索引中所述的相同。 有关详细信息,请参阅 ALTER FULLTEXT INDEX。

当语义索引被禁用或暂停时,对语义数据的查询仍可正常执行,并返回先前已编入索引的数据。 这种行为与 Full-Text 搜索的行为不一致。

-- To disable semantic indexing on a table
USE database_name;
GO

ALTER FULLTEXT INDEX ON table_name DISABLE;
GO

-- To re-enable semantic indexing on a table
USE database_name;
GO

ALTER FULLTEXT INDEX ON table_name ENABLE;
GO

关于语义索引编制的阶段

语义搜索会为每个已启用该功能的列索引两类数据:

  1. 关键短语

  2. 文档相似性

语义索引编制在两个阶段中发生,与全文索引编制一起进行:

  1. 阶段 1。 同时并行填充全文关键字索引和语义关键短语索引。 还在此时提取编制文档相似性索引所需的数据。

  2. 阶段 2: 然后填充语义文档相似性索引。 此索引依赖于在前一阶段填充的两个索引。

问题:语义索引未被填充

是否已填充关联的全文索引?

由于语义索引编制依赖于全文索引编制,因此仅在填充关联的全文索引后填充语义索引。

Full-Text 搜索和语义搜索是否正确安装和配置?

有关详细信息,请参阅 安装和配置语义搜索。

是fdhost服务不可用吗,还是有其他情况会导致全文索引失败?

有关详细信息,请参阅排查全文索引问题。