semanticsimilaritytable (Transact-SQL)

适用范围:SQL Server

为指定列中其内容在语义上类似于指定文档的那些文档返回具有零个、一个或多个行的表。

可以在语句的SELECT子句中FROM引用此行集函数,如常规表名。

Transact-SQL 语法约定

Syntax

SEMANTICSIMILARITYTABLE
    (
      table
      , { column | (column_list) | * }
      , source_key
    )

Arguments

已启用全文和语义索引的表的名称。

此名称可以是一到四个部分名称,但不允许远程服务器名称。

column

应为其返回结果的索引列的名称。 列必须启用语义索引。

column_list

指示由逗号分隔并括在括号中的多个列。 所有列都必须启用语义索引。

*

指示已启用语义索引的所有列都均包括在内。

source_key

请求特定行的结果的行的唯一键。

只要可能,该键将隐式转换为源表中全文唯一键的类型。 该键可以指定为常量或变量,但不能是表达式或标量子查询的结果。

Table returned

下表介绍此行集函数返回的相似或相关文档的信息。

如果从多个列请求结果,则基于每个列返回匹配的文档。

Column name 类型 Description
source_column_id 1 int 源文档中用于查找相似文档的列的 ID。
matched_column_id 1 int 从中找到相似文档的列的 ID。
matched_document_key *

此键与源表中的唯一键的类型相匹配。
与查询中的指定文档相似的文档或行的全文和语义提取唯一键值。
score real 一个相对值,用来表示此文档与所有其他相似文档的相似程度。 该值是 [0.0, 1.0] 范围内的小数点值,其中更高的分数表示更接近的匹配,1.0 是完美的分数。

1 请参阅 COL_NAMECOLUMNPROPERTY 函数,详细了解如何从中 column_id 检索列名,反之亦然。

Remarks

有关详细信息,请参阅 使用语义搜索查找相似和相关文档。

Limitations

无法跨列查询类似文档。 该 SEMANTICSIMILARITYTABLE 函数仅从源列所在的同一列中检索类似的文档,该列由 source_key 参数标识。

Metadata

有关语义相似性的提取和填充的信息和状态,请查询以下动态管理视图:

Permissions

需要 SELECT 对创建全文索引和语义索引的基表具有权限。

Examples

以下示例从示例数据库中的表中AdventureWorks2022检索与指定候选项相似的前 10 个候选项HumanResources.JobCandidate

SELECT TOP (10) KEY_TBL.matched_document_key AS Candidate_ID
FROM SEMANTICSIMILARITYTABLE (HumanResources.JobCandidate, Resume, @CandidateID) AS KEY_TBL
ORDER BY KEY_TBL.score DESC;