sp_fulltext_keymappings (Transact-SQL)
Возвращает сопоставления идентификаторов документов (DocId) и значений полнотекстовых ключей. Столбец 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 (Transact-SQL).docid
Внутренний идентификатор документа DocId, который соответствует значению ключа. При использовании недопустимого значения docid не происходит возврата значений.key
Значение полнотекстового ключа из указанной таблицы. При использовании недопустимого значения key не происходит возврата значений. Дополнительные сведения о значениях ключей полнотекстового поиска см. в разделах Управление полнотекстовыми индексами.
Важно! |
---|
Дополнительные сведения об использовании одного, двух или трех параметров см. в подразделе «Примечания» далее в этом разделе. |
Значения кода возврата
Отсутствует.
Результирующие наборы
Имя столбца |
Тип данных |
Описание |
---|---|---|
DocId |
bigint |
Столбец внутреннего идентификатора документа DocId, который соответствует значению ключа. |
Key |
* |
Значение полнотекстового ключа из указанной таблицы. Если в таблице сопоставлений отсутствуют полнотекстовые ключи, то возвращается пустой набор строк. |
* Тип данных для столбца Key совпадает с типом данных столбца полнотекстового ключа в базовой таблице.
Разрешения
Эта функция является открытой, поэтому не требует специальных разрешений.
Замечания
В следующей таблице описывается эффект от использования одного, двух или трех параметров.
Список параметров... |
Получен следующий результат... |
---|---|
table_id |
При запуске только с параметром table_id хранимая процедура sp_fulltext_keymappings возвращает все значения полнотекстовых ключей (Key) из указанной базовой таблицы вместе с DocId, соответствующим каждому ключу. В это число входят ключи, которые должны быть удалены. Эта функция используется для диагностики и устранения неисправностей при возникновении различных проблем. Эту функцию рекомендуется использовать для просмотра содержимого полнотекстовых индексов, если выбранный полнотекстовый ключ не имеет типа данных integer. Это включает объединение результатов процедуры 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 образца базы данных AdventureWorks2012. Этот индекс можно создать, выполнив пример, приведенный для таблицы 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 AdventureWorks2012;
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 AdventureWorks2012;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO
В результате выполнения данного примера возвращаются следующие результаты:
docid |
key |
|
4 |
4 |
4 |
См. также
Справочник
Полнотекстовый поиск и хранимые процедуры семантического поиска (Transact-SQL)