使用語意搜尋找到文件中的主要片語
描述如何在設定統計語意索引的文件或文字資料行中尋找主要片語。
本主題內容
我想要…
在文件中尋找主要片語
如何:使用 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
[回到頁首]