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


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

Область применения: SQL Server

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

Поиск ключевых фраз в документах с ПОМОЩЬЮ SEMANTICKEYPHRASETABLE

Чтобы определить ключевые фразы в определенных документах или определить документы, содержащие определенные ключевые фразы, запросите функцию semantickeyphrasetable (Transact-SQL).

Функция SEMANTICKEYPHRASETABLE возвращает таблицу с нулем, одной или несколькими строками для ключевых фраз, связанных со столбцами в указанной таблице. На эту функцию набора строк можно ссылаться из предложения FROM инструкции SELECT так же, как и на обычное имя таблицы.

Примечание.

В этом выпуске для семантического поиска индексируются только отдельные слова. Фразы из нескольких слов (n-граммы) не индексируются. Кроме того, различные формы одного и того же слова индексируются отдельно. Например, «компьютер» и «компьютеры» индексируются отдельно.

Подробные сведения о параметрах, необходимых функции SEMANTICKEYPHRASETABLE, и о таблице возвращаемых результатов см. в разделе "Семантикаphrasetable" (Transact-SQL).

Внимание

Для целевых столбцов должно быть включено полнотекстовое и семантическое индексирование.

Пример 1. Поиск ключевых фраз в определенном документе

В следующем примере извлекаются 10 первых ключевых фраз из документа, указанного в переменной @DocumentId в столбце Document таблицы Production.Document в тестовой базе данных AdventureWorks. Переменная @DocumentId представляет значение из ключевого столбца полнотекстового индекса.

SELECT TOP(10) KEYP_TBL.keyphrase  
FROM SEMANTICKEYPHRASETABLE  
    (  
    Production.Document,  
    Document,  
    @DocumentId  
    ) AS KEYP_TBL  
ORDER BY KEYP_TBL.score DESC;  
GO  

Функция SEMANTICKEYPHRASETABLE эффективно извлекает эти результаты поиском по индексу, а не путем просмотра таблицы.

Пример 2. Поиск верхних документов, содержащих определенную ключевую фразу

В следующем примере извлекаются 25 первых документов, содержащих ключевую фразу Bracket в столбце Document таблицы Production.Document примера базы данных AdventureWorks.

SELECT TOP (25) DOC_TBL.DocumentID, DOC_TBL.DocumentSummary  
FROM Production.Document AS DOC_TBL  
    INNER JOIN SEMANTICKEYPHRASETABLE  
    (  
    Production.Document,  
    Document  
    ) AS KEYP_TBL  
ON DOC_TBL.DocumentID = KEYP_TBL.document_key  
WHERE KEYP_TBL.keyphrase = 'Bracket'  
ORDER BY KEYP_TBL.Score DESC;  
GO