语义搜索 (SQL Server)

统计语义搜索通过提取与统计相关的关键短语并编制索引,深入了解存储在SQL Server数据库中的非结构化文档。 然后,它还使用这些关键短语标识“相似或相关文档” 并对其进行索引。

您通过使用三个 Transact-SQL 行集函数将结果作为结构化数据检索,查询这些语义索引。

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

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

下面的示例演示了语义搜索的功能。

在文档中查找关键短语

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

查找相似或相关文档

以下查询获取已标识为与示例文档相似或相关的文档。 该查询按照对这两个文档的相似性进行排名的分数以降序方式展示结果。 此查询 (Transact-SQL) 函数调用 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  
  

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

以下查询获取使两个示例文档彼此相似或相关的关键短语。 该查询按照对每个关键短语的权重进行排名的分数以降序方式展示结果。 此查询 (Transact-SQL) 函数调用 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 2014 中的 FileTable 功能使非结构化文件和文档成为关系数据库的一流公民。 这样,数据库开发人员在 Transact-SQL 基于集的操作中可以将文档与结构化数据一起处理。

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

Related Tasks

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

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

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

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

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

相关内容

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