semantickeyphrasetable (Transact-SQL)
Область применения: SQL Server
Возвращает таблицу с нулем, одной или несколькими строками для ключевых фраз, связанных с указанными столбцами в заданной таблице.
На эту функцию набора строк можно ссылаться из предложения FROM инструкции SELECT так же, как и на обычное имя таблицы.
Соглашения о синтаксисе Transact-SQL
Синтаксис
SEMANTICKEYPHRASETABLE
(
table,
{ column | (column_list) | * }
[ , source_key ]
)
Аргументы
table
Имя таблицы с включенным полнотекстовым и семантическим индексированием.
Это имя может содержать от одной до четырех частей, но указать имя удаленного сервера невозможно.
column
Имя индексированного столбца, для которого должны быть возвращены результаты. У столбца должно быть включено семантическое индексирование.
column_list
Задает несколько столбцов, разделенных запятыми и заключенных в круглые скобки. У всех столбцов должно быть включено семантическое индексирование.
*
Указывает на то, что используются все столбцы, у которых включено семантическое индексирование.
source_key
Уникальный ключ строки для запроса результатов по определенной строке.
По возможности ключ неявно преобразуется в тип полнотекстового уникального ключа в исходной таблице. Ключ может быть задан в виде константы или переменной, но не может быть выражением или результатом скалярного вложенного запроса. Если параметр source_key не указан, то результаты возвращаются для всех строк.
Возвращаемая таблица
В следующей таблице приведены сведения о ключевых фразах, которые возвращает эта функция набора строк.
Column_name | Тип | Описание |
---|---|---|
column_id | int | Идентификатор столбца, из которого была извлечена и проиндексирована текущая ключевая фраза. Способы извлечения имени столбца по идентификатору столбца и идентификатора столбца по имени см. в описании функций COL_NAME и COLUMNPROPERTY. |
document_key | * Этот ключ соответствует типу уникального ключа в исходной таблице. |
Значение уникального ключа документа или строки, в которых была проиндексирована текущая ключевая фраза. |
keyphrase | NVARCHAR | Ключевая фраза из столбца с идентификатором column_id, связанная с документом, указанным document_key. |
score | REAL | Относительное значение для этой ключевой фразы относительно всех других ключевых фраз того же документа в индексируемом столбце. Это дробное десятичное значение в диапазоне [0.0, 1.0], где более высокие значения соответствуют большему весу, а 1.0 — показатель идеального совпадения. |
Общие замечания
Дополнительные сведения см. в статье "Поиск ключевых фраз" в документах с семантической поиском.
Метаданные
Чтобы получить сведения об извлечении семантической ключевой фразы и о заполнении, запросите следующие динамические административные представления:
Безопасность
Разрешения
Требуется разрешение SELECT на базовую таблицу, в которой были созданы индекс полнотекстового поиска и семантический индекс.
Примеры
Пример 1. Поиск наиболее важных ключевых фраз в определенном документе
В следующем примере извлекаются 10 первых ключевых фраз из документа, указанного в переменной @DocumentId в столбце Document таблицы Production.Document в тестовой базе данных AdventureWorks. Переменная @DocumentId представляет значение из ключевого столбца полнотекстового индекса. Функция SEMANTICKEYPHRASETABLE эффективно извлекает эти результаты поиском по индексу, а не путем просмотра таблицы. В этом примере предполагается, что в столбце настроено семантическое и полнотекстовое индексирование.
SELECT TOP(10) KEYP_TBL.keyphrase
FROM SEMANTICKEYPHRASETABLE
(
Production.Document,
Document,
@DocumentId
) AS KEYP_TBL
ORDER BY KEYP_TBL.score DESC;
Пример 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;