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

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

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

В НАЧАЛО

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

См. также