sp_fulltext_keymappings (Transact-SQL)
Возвращаются сопоставления идентификаторов документов (DocIds) и значений полнотекстовых ключей. Столбец DocId содержит значения для целого числа bigint, соответствующего определенному значению полнотекстового ключа в определенной таблице, в которой выполняется полнотекстовое индексирование. Значения DocId, удовлетворяющие условию поиска, передаются из средства полнотекстового поиска в компонент Database Engine, где они сопоставляются со значениями полнотекстового ключа из базовой таблицы, к которой был сделан запрос. Столбец полнотекстового ключа — это уникальный индекс, который необходим для одного столбца таблицы.
Синтаксис
sp_fulltext_keymappings { table_id | table_id, docid | table_id, NULL, key }
Параметры
table_id
Идентификатор объекта полнотекстовой индексированной таблицы. Если указано недопустимое значение table_id, будет возвращена ошибка. Дополнительные сведения о получении идентификатора для таблицы см. в разделе OBJECT_ID (Transact-SQL).docid
Внутренний идентификатор документа (DocId), который соответствует значению ключа. При использовании недопустимого значения docid не происходит возврата значений. Дополнительные сведения об идентификаторах документов см. в разделе Структура полнотекстового индекса.key
Значение полнотекстового ключа из указанной таблицы. При использовании недопустимого значения key не происходит возврата значений. Дополнительные сведения о значениях ключей полнотекстового поиска см. в разделах Как запрашивать сведения о столбце полнотекстового ключа (Transact-SQL).
Важно! |
---|
Дополнительные сведения об использовании одного, двух или трех параметров см. в подразделе «Примечания» далее в этом разделе. |
Значения кода возврата
Нет.
Результирующие наборы
Имя столбца |
Тип данных |
Описание |
---|---|---|
DocId |
bigint |
Столбец внутреннего идентификатора документа (DocId), который соответствует значению ключа. |
Ключ |
* |
Значение полнотекстового ключа из указанной таблицы. Если в таблице сопоставлений отсутствуют полнотекстовые ключи, то возвращается пустой набор строк. |
* Тип данных для столбца Key совпадает с типом данных столбца полнотекстового ключа в базовой таблице.
Разрешения
Эта функция является открытой, поэтому не требует специальных разрешений.
Замечания
В следующей таблице описывается эффект от использования одного, двух или трех параметров.
Список параметров... |
Получен следующий результат... |
---|---|
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 (Transact-SQL). Однако, как правило, рекомендуется при возможности выполнять sp_fulltext_keymappings с параметрами, которые указывают полнотекстовый ключ или DocId. Это более эффективный способ, чем возврат всей карты ключей, особенно для очень большой таблицы, при работе с которой может возникнуть значительное снижение производительности при возврате всей карты ключей. |
table_id, docid |
Если указаны только параметры table_id и docid, то docid должны иметь значение, отличное от NULL, и для заданной таблицы должен быть указан действительный DocId. Эта функция используется для изоляции настраиваемых полнотекстовых ключей из базовой таблицы, которая соответствует DocId определенного полнотекстового индекса. |
table_id, NULL, key |
Если представлены три параметра, то второй параметр должен иметь значение NULL, а key должен иметь значение, отличное от NULL, и задавать действительное значение полнотекстового ключа для указанной таблицы. Эта функция используется для изоляции настраиваемых DocId, которые соответствуют определенным полнотекстовым ключам в базовой таблице. |
Возвращается ошибка, если выполняется любое из следующих условий.
Указано недопустимое значение table_id.
Таблица не имеет полнотекстового индекса.
Задано значение NULL для параметра, который должен иметь значения, отличные от NULL.
Примеры
Примечание |
---|
В примерах этого раздела используется таблица Production.ProductReview из образца базы данных AdventureWorks. Этот индекс можно создать, выполнив пример, приведенный для таблицы ProductReview в разделе CREATE FULLTEXT INDEX (Transact-SQL). |
А. Получение значений Key и DocId
В следующем примере используется инструкция DECLARE, которая создает локальную переменную @table\_id и присваивает ей в качестве значения идентификатор таблицы ProductReview. В примере выполняется хранимая процедура sp_fulltext_keymappings, которая задает @table\_id для параметра table_id.
Примечание |
---|
Применение хранимой процедуры sp_fulltext_keymappings только с параметром table_id подходит для небольших таблиц. |
USE AdventureWorks;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id;
GO
Этот пример возвращает из таблицы идентификаторы DocId и полнотекстовые ключи:
docid |
key |
|
1 |
1 |
1 |
2 |
2 |
2 |
3 |
3 |
3 |
4 |
4 |
4 |
Б. Получение значения DocId для конкретного значения Key
В следующем примере используется инструкция DECLARE, которая создает локальную переменную @table\_id и присваивает ей в качестве значения идентификатор таблицы ProductReview. В примере выполняется хранимая процедура sp_fulltext_keymappings, которая задает значение @table\_id для параметра table_id, значение NULL — для параметра docid и значение 4 — для параметра key.
Примечание |
---|
Применение хранимой процедуры sp_fulltext_keymappings только с параметром table_id подходит для небольших таблиц. |
USE AdventureWorks;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO
В результате выполнения данного примера возвращаются следующие результаты:
docid |
key |
|
4 |
4 |
4 |
Журнал изменений
Обновления |
---|
Дополнительные примеры. |
См. также