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;