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


semantickeyphrasetable (Transact-SQL)

Возвращает таблицу с нулем, одной или несколькими строками для ключевых фраз, связанных с указанными столбцами в заданной таблице.

На эту функцию набора строк можно ссылаться из предложения 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;