适用范围:SQL Server
为指定列中其内容在语义上类似于指定文档的那些文档返回具有零个、一个或多个行的表。
可以在语句的SELECT
子句中FROM
引用此行集函数,如常规表名。
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_NAME 和 COLUMNPROPERTY 函数,详细了解如何从中 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;