使用語意搜尋尋找相似及相關的文件

適用於:SQL Server

描述如何在設定進行統計語意索引的資料行中尋找相似或相關的文件或文字值,以及相似或相關程度的詳細資訊。

使用 SEMANTICSIMILARITYTABLE 尋找相似或相關的文件

若要識別特定資料行中的相似或相關文件,請查詢 semanticsimilaritytable (Transact-SQL) 函式。

SEMANTICSIMILARITYTABLE 會傳回含有零個、一個或多個資料列的資料表,其中所指定資料行中的內容會與所指定文件的語意相似。 您可以在 SELECT 陳述式的 FROM 子句中參考這個資料列集函數,就像是一般資料表名稱一樣。

您不能跨資料行查詢類似文件。 SEMANTICSIMILARITYTABLE 函數只從與來源資料行相同的資料行中擷取結果,而來源資料行是透過 source_key 引數進行識別。

如需 SEMANTICSIMILARITYTABLE 函式所需參數及其所傳回結果資料表的詳細資訊,請參閱 semanticsimilaritytable (Transact-SQL) (機器翻譯)

重要

您設定為目標的資料行必須已啟用全文檢索和語意索引。

範例:找到最相似於另一個文件的文件

下列範例從 AdventureWorks2022 範例資料庫的 HumanResources.JobCandidate 資料表中擷取類似於 @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  

使用 SEMANTICSIMILARITYDETAILSTABLE 尋找文件相似或相關程度的詳細資訊

若要取得讓文件相似或相關之主要片語的資訊,您可以查詢 semanticsimilaritydetailstable (Transact-SQL) 函式。

SEMANTICSIMILARITYDETAILSTABLE 會傳回含有零個、一個或多個資料列的資料表,表示其內容為語意相似之兩份文件 (來源文件和比對文件) 之間的共同主要片語。 您可以在 SELECT 陳述式的 FROM 子句中參考這個資料列集函數,就像是一般資料表名稱一樣。

如需 SEMANTICSIMILARITYDETAILSTABLE 函式所需參數及其所傳回結果資料表的詳細資訊,請參閱 semanticsimilaritydetailstable (Transact-SQL) (機器翻譯)

重要

您設定為目標的資料行必須已啟用全文檢索和語意索引。

範例:尋找文件之間相似的前幾個主要片語

下列範例從 AdventureWorks2022 範例資料庫的 HumanResources.JobCandidate 資料表擷取所指定候選人之間相似度分數最高的 5 個主要片語。

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