语义搜索 (SQL Server)

适用于:SQL Server

统计语义搜索通过提取统计上相关的“关键短语”并对其进行索引,提供对 SQL Server 中存储的非结构化文档的更深层次剖析。 然后,它使用这些关键短语标识“相似或相关文档”并对其进行索引。

使用语义搜索可以做什么?

语义搜索以 SQL Server 中现有的全文搜索功能为基础,但允许超出关键字搜索范畴的新方案。 全文搜索允许你查询文档中的“词”,语义搜索则允许你查询文档的“含义”。 现有的可能解决方案包括自动标记提取、相关内容发现以及相似内容中层次结构导航。 例如,您可以查询关键短语的索引来建立一个组织或文档集的分类索引。 或者,您可以查询文档相似性索引来标识匹配某一工作描述的简历。

下面的示例演示了语义搜索的功能。 同时,这些示例还展示了你用来查询语义索引和以结构化数据形式检索结果的三个 Transact-SQL 行集函数。

在文档中查找关键短语

下面的查询获取在示例文档中已标识的关键短语。 该查询按照对每个关键短语的统计重要性进行排名的分数以降序方式展示结果。

此查询调用 semantickeyphrasetable 函数。

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 函数。

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 函数。

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 中的 FileTable 功能使非结构化的文件和文档能够很好地通过关系数据库处理。 这样,数据库开发人员在 Transact-SQL 基于集的操作中可以将文档与结构化数据一起处理。

有关 FileTable 功能的详细信息,请参阅 FileTables (SQL Server)。 有关 FILESTREAM 功能(这是用于在数据库中存储文档的另一个选项)的信息,请参阅 FILESTREAM (SQL Server)

相关任务

安装和配置语义搜索
说明统计语义搜索的必备组件以及如何安装或检查它们。

对表和列启用语义搜索
介绍如何启用或禁用包含文档或文本的选定列上的统计语义索引。

使用语义搜索查找文档中的关键短语
介绍如何在为统计语义索引配置的文档或文本列中查找关键短语。

使用语义搜索来查找相似和相关文档
说明在为统计语义索引配置的列上如何查找相似或相关的文档或文本值,以及如何查找其相似或相关程度的信息。

管理和监视语义搜索
说明语义索引编制的进度以及与监视和管理索引有关的任务。

相关内容

语义搜索 DDL、函数、存储过程和视图
列出用于支持统计语义搜索的新增或更改的 Transact-SQL 语句和 SQL Server 数据库对象。