共用方式為


使用語意搜尋找到文件中的主要片語

描述如何在設定統計語意索引的文件或文字資料行中尋找主要片語。

本主題內容

我想要…

  • 在文件中尋找主要片語

    • 如何:使用 SEMANTICKEYPHRASETABLE 在文件中尋找主要片語

    • 範例:在特定文件中尋找前幾個主要片語

    • 範例:尋找包含特定主要片語的前幾份文件

在文件中尋找主要片語

如何:使用 SEMANTICKEYPHRASETABLE 在文件中尋找主要片語

若要在特定文件中識別主要片語,或識別包含特定主要片語的文件,請查詢 semantickeyphrasetable (Transact-SQL) 函數。

SEMANTICKEYPHRASETABLE 會傳回包含零個、一個或多個資料列的資料表,表示與指定之資料表資料行相關聯的主要片語。 您可以在 SELECT 陳述式的 FROM 子句中參考這個資料列集函數,就像是一般資料表名稱一樣。

[!附註]

在 SQL Server 2012 中,只有單一字會針對語意搜尋編制索引,多字片語 (ngrams) 則不會編制索引。 此外,相同字的不同形式會個別編制索引,例如 "computer" 和 "computers" 會個別編制索引。

如需有關 SEMANTICKEYPHRASETABLE 函數所需之參數及其傳回之結果資料表的詳細資訊,請參閱<semantickeyphrasetable (Transact-SQL)>。

重要事項重要事項

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

[回到頁首]

範例 1:在特定文件中尋找前幾個主要片語

下列範例會從 AdventureWorks 範例資料庫之 Production.Document 資料表 Document 資料行 @DocumentId 變數所指定的文件中,擷取前 10 個主要片語。 @DocumentId 變數是指來自全文檢索索引之索引鍵資料行的值。

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

SEMANTICKEYPHRASETABLE 函式會使用索引搜尋有效率地擷取這些結果,而不會使用資料表掃描。

[回到頁首]

範例 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;
GO

[回到頁首]