Поделиться через


Семантический поиск (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  
  

Найти схожие или связанные документы

Следующий запрос возвращает документы, которые были определены как схожие с образцом документа или связанные. Он возвращает результаты в порядке убывания показателя, обозначающего схожесть двух документов. Этот запрос вызывает функцию 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.

Функция FileTable в SQL Server 2014 делает неструктурированные файлы и документы первоклассными гражданами реляционной базы данных. С их помощью разработчики баз данных могут управлять документами вместе со структурированными данными с использованием набора операций Transact-SQL.

Дополнительные сведения о функции FileTable см. в разделе FileTables (SQL Server)). Сведения о функции FILESTREAM, которая является еще одним вариантом хранения документов в базе данных, см. в разделе FILESTREAM (SQL Server).

Связанные задачи

Установка и настройка семантического поиска
Описывает компоненты, необходимые для статистического семантического поиска, и способы их установки и проверки.

Включение семантического поиска на таблицы и столбцы
Описывает способ включения или отключения статистического семантического индексирования в выбранных столбцах, содержащих документы или текст.

Поиск ключевых фраз в документах с использованием семантического поиска
Описывает способ поиска ключевых фраз в документах или текстовых столбцах, настроенных для статистического семантического индексирования.

Поиск похожих и связанных документов с использованием семантического поиска
Описывает процесс поиска схожих или связанных документов или текстовых значений и сведений об их сходстве или связи в столбцах, настроенных для статистического семантического индексирования.

Управление и наблюдение за семантическим поиском
Описывается процесс семантического индексирования и задачи, связанные с наблюдением за индексами и управлением ими.

См. также

Инструкции семантического поиска DDL, функции, хранимые процедуры и представления
Содержит список инструкций Transact-SQL и объектов базы данных SQL Server, добавленных или измененных для поддержки статистического семантического поиска.