Share via


語意搜尋 (SQL Server)

統計語意搜尋會擷取統計上相關的*「主要片語」並建立其索引,藉以深入解析儲存在 SQL Server 資料庫中的非結構化文件。 然後,它也會使用這些主要片語來識別相似或相關文件*,並建立其索引。

使用三個 Transact-SQL 資料列集函數,以結構化資料形式擷取結果,就可以查詢這些語意索引。

本主題內容

  • 我可以使用語意搜尋進行哪些作業?

    • 在文件中尋找主要片語

    • 尋找相似或相關的文件

    • 尋找讓文件相似的主要片語

  • 在 SQL Server 中儲存文件

  • 相關工作

  • 相關內容

我可以使用語意搜尋進行哪些作業?

雖然語意搜尋是以 SQL Server 中現有的全文檢索搜尋功能為建立基礎,但是可以實現超過關鍵字搜尋的新案例。 全文檢索搜尋可讓您查詢文件中的字詞,而語意搜尋則可讓您查詢文件的意義。 目前可能的方案包含自動標記擷取、相關內容探索,以及相似內容的階層式導覽。 例如,您可以查詢主要片語的索引來建立組織或文件主體的分類。 或者,您可以查詢文件相似度索引來識別符合工作描述的履歷表。

下列各範例示範語意搜尋的功能。

在文件中尋找主要片語

下列查詢會取得範例文件中已識別的主要片語。 它會依照排列每個主要片語之統計重要性次序的分數,以遞減順序呈現結果。 此查詢會呼叫 semantickeyphrasetable (Transact-SQL) 函數。

SET @Title = 'Sample Document.docx'

SELECT @DocID = DocumentID
    FROM Documents
    WHERE DocumentTitle = @Title

SELECT @Title AS Title, keyphrase, score
    FROM SEMANTICKEYPHRASETABLE(Documents, *, @DocID)
    ORDER BY score DESC

回到頁首

尋找相似或相關的文件

下列查詢會取得識別為與範例文件相似或相關的文件。 它會依照排列這兩份文件之相似度次序的分數,以遞減順序呈現結果。 此查詢會呼叫 semanticsimilaritytable (Transact-SQL) 函數。

SET @Title = 'Sample Document.docx'

SELECT @DocID = DocumentID
    FROM Documents
    WHERE DocumentTitle = @Title

SELECT @Title AS SourceTitle, DocumentTitle AS MatchedTitle,
        DocumentID, score
    FROM SEMANTICSIMILARITYTABLE(Documents, *, @DocID)
    INNER JOIN Documents ON DocumentID = matched_document_key
    ORDER BY score DESC

回到頁首

尋找讓文件相似或相關的主要片語

下列查詢會取得讓兩份範例文件相似或相關的主要片語。 它會依照排列每個主要片語之加權次序的分數,以遞減順序呈現結果。 此查詢會呼叫 semanticsimilaritydetailstable (Transact-SQL) 函式。

SET @SourceTitle = 'first.docx'
SET @MatchedTitle = 'second.docx'

SELECT @SourceDocID = DocumentID FROM Documents WHERE DocumentTitle = @SourceTitle
SELECT @MatchedDocID = DocumentID FROM Documents WHERE DocumentTitle = @MatchedTitle

SELECT @SourceTitle AS SourceTitle, @MatchedTitle AS MatchedTitle, keyphrase, score
    FROM semanticsimilaritydetailstable(Documents, DocumentContent,
        @SourceDocID, DocumentContent, @MatchedDocID)
    ORDER BY score DESC

回到頁首

在 SQL Server 中儲存文件

在您使用語意搜尋索引文件前,必須先將文件儲存在 SQL Server 資料庫中。

SQL Server 2012 中的 FileTable 功能可讓非結構化檔案和文件成為關聯式資料庫的首要成員。 因此,資料庫開發人員可以在 Transact-SQL 集合式作業中,操作文件以及結構化資料。

如需有關 FileTable 功能的詳細資訊,請參閱<FileTable (SQL Server)>。 如需有關 FILESTREAM 功能 (這是將文件儲存至資料庫的另一個選擇) 的詳細資訊,請參閱<FILESTREAM (SQL Server)>。

回到頁首

相關工作

相關內容