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


sp_fulltext_keymappings (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure Платформенная система аналитики (PDW)

Возвращаются сопоставления идентификаторов документов (DocIds) и значений полнотекстовых ключей. Столбец DocId содержит значения для целого числа bigint , которое сопоставляется с определенным значением полнотекстового ключа в полнотекстовой индексированной таблице. Значения DocId, удовлетворяющие условию поиска, передаются из средства полнотекстового поиска в компонент Database Engine, где они сопоставляются со значениями полнотекстового ключа из базовой таблицы, к которой был сделан запрос. Столбец полнотекстового ключа — это уникальный индекс, который необходим для одного столбца таблицы.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_fulltext_keymappings { table_id | table_id , docId | table_id , NULL , key }
[ ; ]

Аргументы

table_id

Идентификатор объекта полнотекстовой индексации таблицы. Если указать недопустимый table_id, возвращается ошибка. Сведения о получении идентификатора объекта таблицы см. в OBJECT_ID.

docId

Внутренний идентификатор документа (DocId), соответствующий значению ключа. Недопустимое значение docId не возвращает результатов.

key

Значение полнотекстового ключа из указанной таблицы. При использовании недопустимого значения key не происходит возврата значений. Сведения о значениях полнотекстового ключа см. в статье "Создание полнотекстовых индексов" и управление ими.

Значения кода возврата

Нет.

Результирующий набор

Имя столбца Тип данных Description
DocId bigint Столбец внутреннего идентификатора документа (DocId), соответствующий значению ключа.
Key 1 Значение полнотекстового ключа из указанной таблицы.

Если в таблице сопоставлений отсутствуют полнотекстовые ключи, то возвращается пустой набор строк.

1 Тип данных для ключа совпадает с типом данных столбца полнотекстового ключа в базовой таблице.

Разрешения

Эта функция является общедоступной и не требует специальных разрешений.

Замечания

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

Этот список параметров... Имеет этот результат...
table_id При вызове только с параметром table_id sp_fulltext_keymappings возвращает все значения полнотекстового ключа (key) из указанной базовой таблицы, а также DocId, соответствующий каждому ключу. В это число входят ключи, которые должны быть удалены.

Эта функция полезна для устранения различных проблем. Полезно просмотреть содержимое полнотекстового индекса, если выбранный полнотекстовый ключ не является целым типом данных. Это включает присоединение sp_fulltext_keymappings результатов к результатам sys.dm_fts_index_keywords_by_document. Дополнительные сведения см. в sys.dm_fts_index_keywords_by_document.

Однако рекомендуется, если это возможно, выполняться sp_fulltext_keymappings с параметрами, указывающими конкретный полнотекстовый ключ или DocId. Это гораздо эффективнее, чем возврат всей карты ключей, особенно для большой таблицы, для которой производительность возврата всей карты ключей может быть существенной.
table_id, docId Если заданы только table_id и docId, docId должен быть не NULL и указывать допустимый DocId в указанной таблице. Эта функция используется для изоляции настраиваемых полнотекстовых ключей из базовой таблицы, которая соответствует DocId определенного полнотекстового индекса.
table_id, NULLключ Если присутствуют три параметра, второй параметр должен быть NULL, а ключ должен быть не NULL и указывать допустимое значение полнотекстового ключа из указанной таблицы. Эта функция используется для изоляции настраиваемых DocId, которые соответствуют определенным полнотекстовым ключам в базовой таблице.

Возвращается ошибка, если выполняется любое из следующих условий.

  • Указать недопустимый table_id
  • Таблица не индексируется полнотекстовой
  • NULL обнаружен параметр, который может быть не null.

Примеры

Примечание.

Примеры в этом разделе используют таблицу Production.ProductReview примера базы данных AdventureWorks2022. Этот индекс можно создать, выполнив пример, указанный для ProductReview таблицы в CREATE FULLTEXT INDEX.

А. Получение всех значений Key и DocId

В следующем примере оператор используется DECLARE @local_variable для создания локальной переменной и @table_id назначения идентификатора ProductReview таблицы в качестве значения. В примере выполняется sp_fulltext_keymappings указание @table_id параметра table_id .

Примечание.

Использование sp_fulltext_keymappings только с параметром table_id подходит для небольших таблиц.

USE AdventureWorks2022;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id;
GO

Этот пример возвращает из таблицы идентификаторы DocId и полнотекстовые ключи:

TABLE docId key
1 1 1
2 2 2
3 3 3
4 4 4

B. Получение значения DocId для определенного значения ключа

В следующем примере используется инструкция DECLARE, которая создает локальную переменную @table_idи присваивает ей в качестве значения идентификатор таблицы ProductReview . В примере выполняется sp_fulltext_keymappings указание @table_id параметра table_id для NULL параметра docId и 4 для параметра ключа .

Примечание.

Использование sp_fulltext_keymappings только с параметрами table_id , подходящими для небольших таблиц.

USE AdventureWorks2022;
GO

DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');

EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO

В результате выполнения данного примера возвращаются следующие результаты:

TABLE docId key
4 4 4