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


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;