分享方式:


semantickeyphrasetable (Transact-SQL)

適用於:SQL Server

針對與指定數據表中指定之數據行相關聯的關鍵片語,傳回零、一或多個數據列的數據表。

您可以在 SELECT 陳述式的 FROM 子句中參考這個資料列集函數,就像是一般資料表名稱一樣。

Transact-SQL 語法慣例

語法

SEMANTICKEYPHRASETABLE  
    (  
    table,  
    { column | (column_list) | * }  
     [ , source_key ]  
    )  

引數

table
這是已啟用全文檢索和語意索引的數據表名稱。

此名稱可以是一到四個部分名稱,但不允許遠端伺服器名稱。

column
應該傳回結果的索引數據行名稱。 數據行必須啟用語意索引。

column_list
表示數個數據行,以逗號分隔,並以括弧括住。 所有數據行都必須啟用語意索引。

*
表示包含啟用語意索引的所有數據行。

source_key
數據列的唯一索引鍵,以要求特定數據列的結果。

金鑰會盡可能隱含地轉換成源數據表中全文檢索唯一索引鍵的類型。 索引鍵可以指定為常數或變數,但不能是表達式或純量子查詢的結果。 如果省略source_key,則會傳回所有數據列的結果。

傳回的資料表

下表描述此數據列集函式傳回之關鍵片語的相關信息。

Column_name 類型 描述
column_id int 從中擷取和編製索引目前關鍵片語的數據行標識碼。

如需如何從column_id擷取數據行名稱的詳細資訊,請參閱 COL_NAME 和 COLUMNPROPERTY 函式。
document_key *

此索引鍵會比對源數據表中唯一索引鍵的類型。
索引目前關鍵片語之文件或數據列的唯一索引鍵值。
keyphrase NVARCHAR 在column_id所識別之數據行中找到的關鍵片語,以及與document_key所指定的文件相關聯。
得分 REAL 這個關鍵片語與其索引數據行中相同檔中所有其他關鍵片語的關聯性相對值。

值是 [0.0, 1.0] 範圍內的小數十進位值,其中較高的分數代表較高的加權,1.0 是完美的分數。

一般備註

如需詳細資訊,請參閱 使用語意搜尋在文件中尋找關鍵片語組。

中繼資料

如需語意關鍵片語組擷取和母體的相關信息和狀態,請查詢下列動態管理檢視:

安全性

權限

需要建立全文檢索和語意索引之基表的 SELECT 許可權。

範例

範例 1:尋找特定檔中的前幾個關鍵片語

下列範例會從 AdventureWorks 範例資料庫之 Production.Document 資料表 Document 資料行 @DocumentId 變數所指定的文件中,擷取前 10 個主要片語。 @DocumentId 變數是指來自全文檢索索引之索引鍵資料行的值。 SEMANTICKEYPHRASETABLE 函數會使用索引搜尋有效率地擷取這些結果,而不會使用資料表掃描。 此範例假設數據行已設定為全文檢索和語意索引。

SELECT TOP(10) KEYP_TBL.keyphrase  
FROM SEMANTICKEYPHRASETABLE  
    (  
    Production.Document,  
    Document,  
    @DocumentId  
    ) AS KEYP_TBL  
ORDER BY KEYP_TBL.score DESC;  
  

範例 2:尋找包含特定關鍵片語的頂端檔

下列範例會從 AdventureWorks 範例資料庫 Production.Document 資料表的 Document 資料行中,擷取前 25 份包含主要片語的 "Bracket" 的文件。 此範例假設數據行已設定為全文檢索和語意索引。

SELECT TOP (25) DOC_TBL.DocumentID, DOC_TBL.DocumentSummary  
FROM Production.Document AS DOC_TBL  
    INNER JOIN SEMANTICKEYPHRASETABLE  
    (  
    Production.Document,  
    Document  
    ) AS KEYP_TBL  
ON DOC_TBL.DocumentID = KEYP_TBL.document_key  
WHERE KEYP_TBL.keyphrase = 'Bracket'  
ORDER BY KEYP_TBL.Score DESC;