使用语义搜索查找类似和相关文档

适用范围:SQL Server

介绍如何在为统计语义索引配置的列中查找相似或相关的文档或文本值以及它们相似或相关的信息。

若要识别特定列中的相似或相关文档,请查询函数semanticsimilaritytable

SEMANTICSIMILARITYTABLE 返回一个表,其中在指定列中,内容与指定文档在语义上相似,并可能包含零行、一行或多行。 此行集函数可以在 SELECT 语句的 FROM 子句中引用,就像常规表名一样。

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

有关函数所需的 SEMANTICSIMILARITYTABLE 参数及其返回的结果表的详细信息,请参阅 semanticsimilaritytable

Important

针对的列必须启用了全文索引和语义索引。

若要获取有关使文档相似或相关的关键短语的信息,可以查询函数 semanticsimilaritydetailstable

SEMANTICSIMILARITYDETAILSTABLE 返回在两个文档(源文档和匹配文档)中通用的零行、一行或多行关键短语的表,其内容在语义上相似。 此行集函数可以在 SELECT 语句的 FROM 子句中引用,就像常规表名一样。

有关函数所需的 SEMANTICSIMILARITYDETAILSTABLE 参数及其返回的结果表的详细信息,请参阅 semanticsimilaritydetailstable

Important

针对的列必须启用了全文索引和语义索引。

Examples

A. 查找与另一个文档相似的顶部文档

以下示例从 示例数据库的 HumanResources.JobCandidate 表中检索与按 AdventureWorks2022@CandidateID 指定的候选人最相似的 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;
GO

B. 查找文档之间相似的主要关键短语

以下示例从示例数据库的HumanResources.JobCandidate表中检索指定候选项之间具有最高相似性分数的五个关键词。

SELECT TOP (5) KEY_TBL.keyphrase,
               KEY_TBL.score
FROM SEMANTICSIMILARITYDETAILSTABLE (HumanResources.JobCandidate, Resume, @CandidateID, Resume, @MatchedID) AS KEY_TBL
ORDER BY KEY_TBL.score DESC;
GO