sp_fulltext_keymappings (Transact-SQL)
Se aplica a: SQL Server Azure SQL Managed Instance Analytics 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.
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, consulte Creación y administración de í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.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 y la clave debe ser NULL 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 podría 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.
A Obtención de todos los valores de Key y DocId
En el ejemplo siguiente se usa una DECLARE @local_variable instrucción 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 |