语义搜索 (SQL Server)

统计语义搜索通过提取和索引统计相关 关键短语,深入了解 SQL Server 数据库中存储的非结构化文档。 然后,它还使用这些关键短语来标识和索引 类似或相关的文档

可以使用三个 Transact-SQL 行集函数将结果检索为结构化数据来查询这些语义索引。

可以使用语义搜索执行哪些任务?

语义搜索基于 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  
  

查找相似文档或相关文档

以下查询获取标识为类似或与示例文档相关的文档。 它按排名 2 个文档的相似性分数按降序显示结果。 此查询调用 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  
  

查找使文档相似或相关的关键短语

以下查询获取使 2 个示例文档彼此相似或相互相关的关键短语。 它将结果按短语权重排名的分数降序显示。 此查询调用 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 2014 的 FileTable 功能使非结构化文件和文档成为关系数据库中的核心组成部分。 因此,数据库开发人员可以在 Transact-SQL 集合操作中同时处理文档和结构化数据。

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

相关任务

安装和配置语义搜索
介绍统计语义搜索的先决条件以及如何安装或检查它们。

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

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

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

管理和监视语义搜索
介绍语义索引编制过程以及与监视和管理索引相关的任务。

相关内容

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