Поиск ключевых фраз в документах с использованием семантического поиска
Область применения: 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