sp_fulltext_keymappings (Transact-SQL)

Se aplica a:SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)

Devuelve las asignaciones entre los identificadores de documento (DocIds) y los valores de clave de texto completo. La columna DocId contiene valores para un entero bigint que se asigna a un valor de clave de texto completo determinado en una tabla indizada de texto completo. Los valores de DocId que cumplen una condición de búsqueda se pasan desde el motor de búsqueda de texto completo al motor de base de datos, donde se asignan a valores de clave de texto completo de la tabla base en la que se realizan las consultas. La columna de clave de texto completo es un índice único requerido en una columna de la tabla.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

table_id

Identificador de objeto de la tabla indizada de texto completo. Si especifica un table_id no válido, se devuelve un error. Para obtener información sobre cómo obtener el identificador de objeto de una tabla, consulte OBJECT_ID (Transact-SQL).

Docid

Identificador de documento interno (DocId) que corresponde al valor de clave. Un valor docId no válido no devuelve ningún resultado.

key

Valor de clave de texto completo de la tabla especificada. Un valor de key no válido no devuelve ningún resultado. Para obtener información sobre los valores de clave de texto completo, vea Administrar índices de texto completo.

Valores de código de retorno

Ninguno.

Conjunto de resultados

Nombre de la columna Tipo de datos Descripción
DocId bigint Columna de identificador de documento interno (DocId) que corresponde al valor de clave.
Key 1 Valor de clave de texto completo de la tabla especificada.

Si no hay ninguna clave de texto completo en la tabla de asignación, se devuelve un conjunto de filas vacío.

1 El tipo de datos de Key es el mismo que el tipo de datos de la columna de clave de texto completo de la tabla base.

Permisos

Esta función es pública y no requiere permisos especiales.

Comentarios

En la tabla siguiente, se describe el efecto de usar uno, dos o tres parámetros.

Esta lista de parámetros... Tiene este resultado...
table_id Cuando se invoca con solo el parámetro table_id , sp_fulltext_keymappings devuelve todos los valores de clave de texto completo (Clave) de la tabla base especificada, junto con el DocId que corresponde a cada clave. Esto incluye las claves pendientes de eliminación.

Esta función es útil para solucionar varios problemas. Resulta útil ver el contenido del índice de texto completo cuando la clave de texto completo seleccionada no es de un tipo de datos entero. Esto implica unir los resultados de sp_fulltext_keymappings con los resultados de sys.dm_fts_index_keywords_by_document. Para obtener más información, consulte sys.dm_fts_index_keywords_by_document (Transact-SQL).

Sin embargo, en general, se recomienda que, si es posible, ejecute sp_fulltext_keymappings con parámetros que especifiquen una clave de texto completo específica o DocId. Esto es mucho más eficaz que devolver un mapa de claves completo, especialmente para una tabla grande para la que el costo de rendimiento de devolver todo el mapa de claves puede ser considerable.
table_id, docId Si solo se especifican los table_id y docId, docId debe ser distinto de NULL y especificar un DocId válido en la tabla especificada. Esta función resulta útil para aislar la clave de texto completo personalizada de la tabla base que corresponde al DocId de un determinado índice de texto completo.
table_id, NULL, clave Si hay tres parámetros, el segundo parámetro debe ser NULL y la clave debe ser no NULL y especificar un valor de clave de texto completo válido de la tabla especificada. Esta función resulta útil para aislar el DocId que corresponde a una determinada clave de texto completo de la tabla base.

Se devolverá un error en cualquiera de las condiciones siguientes:

  • Especifique un table_id no válido .
  • La tabla no está indizada de texto completo
  • NULL se encuentra para un parámetro que puede ser distinto de NULL.

Ejemplos

Nota:

En los ejemplos de esta sección se usa la Production.ProductReview tabla de la base de datos de ejemplo AdventureWorks2022. Puede crear este índice ejecutando el ejemplo proporcionado para la ProductReview tabla en CREATE FULLTEXT INDEX (Transact-SQL).

A Obtención de todos los valores de Key y DocId

En el ejemplo siguiente se usa una instrucción DECLARE para crear una variable @table_id local y para asignar el identificador de la ProductReview tabla como su valor. En el ejemplo se ejecuta sp_fulltext_keymappings la especificación @table_id del parámetro table_id .

Nota:

El uso sp_fulltext_keymappings de solo con el parámetro table_id es adecuado para tablas pequeñas.

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

En este ejemplo se devuelven todos los identificadores DocId y claves de texto completo de la tabla, del siguiente modo:

TABLE Docid key
1 1 1
2 2 2
3 3 3
4 4 4

B. Obtener el valor de DocId para un valor de clave específico

En el ejemplo siguiente se usa una instrucción DECLARE para crear una variable local, @table_id, y asignar el identificador de la tabla ProductReview como su valor. En el ejemplo se ejecuta la especificación @table_id para el parámetro table_id, NULL para el parámetro docId y 4 para el parámetro key.sp_fulltext_keymappings

Nota:

Usar sp_fulltext_keymappings solo con los parámetros table_id adecuados para tablas pequeñas.

USE AdventureWorks2022;
GO

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

EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO

En este ejemplo se devuelven los resultados siguientes.

TABLE Docid key
4 4 4