semanticsimilaritytable (Transact-SQL)

适用范围:SQL Server

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

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

Transact-SQL 语法约定

语法

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

参数

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

此名称可由 1 到 4 个部分组成,但不允许使用远程服务器名称。

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;