semanticsimilaritytable (Transact-SQL)

适用于:SQL Server

返回一个表,其中指定列中的内容与指定文档的语义上相似,该表包含零行、一行或多行。

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

Transact-SQL 语法约定

语法

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

参数

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

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

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

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

*
指示包括启用了语义索引的所有列。

source_key
行的唯一键,用于请求特定行的结果。

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

返回的表

下表描述了有关此行集函数返回的类似或相关文档的信息。

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

Column_name 类型 描述
source_column_id int 源文档用于查找类似文档的列的 ID。

有关如何从column_id检索列名的详细信息,请参阅COL_NAME和 COLUMNPROPERTY 函数。
matched_column_id int 找到类似文档的列的 ID。

有关如何从column_id检索列名的详细信息,请参阅COL_NAME和 COLUMNPROPERTY 函数。
matched_document_key *

此键与源表中唯一键的类型匹配。
找到的文档或行的全文和语义提取唯一键值类似于查询中的指定文档。
score REAL 此文档与其所有其他相似文档的关系中相似性的相对值。

该值是 [0.0, 1.0] 范围内的小数点值,其中更高的分数表示更接近的匹配,1.0 是完美的分数。

一般备注

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

限制和局限

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

元数据

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

安全性

权限

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

示例

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

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;