Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de datos SQL en Microsoft Fabric
Devuelve todo el contenido relacionado con propiedades en el índice de texto completo de una tabla determinada. Esto incluye todos los datos que pertenecen a cualquier propiedad registrados por la lista de propiedades de búsqueda asociada a ese índice de texto completo.
sys.dm_fts_index_keywords_by_property es una función de gestión dinámica que permite ver qué propiedades registradas emitieron IFilters en tiempo de índice, así como el contenido exacto de cada propiedad en cada documento indexado.
Para ver todo el contenido a nivel de documento (incluido el contenido relacionado con propiedades), véase sys.dm_fts_index_keywords_by_document.
Para ver información índice completa de nivel superior, consulte sys.dm_fts_index_keywords.
Para obtener información sobre las listas de propiedades de búsqueda, vea Buscar propiedades de documento con listas de propiedades de búsqueda.
Syntax
sys.dm_fts_index_keywords_by_property
(
DB_ID('database_name')
, OBJECT_ID('table_name')
)
Argumentos
DB_ID('database_name')
Una llamada a la función DB_ID .
DB_ID es int. Esta función acepta un nombre de base de datos y devuelve el ID de la base de datos, que sys.dm_fts_index_keywords_by_property se utiliza para encontrar la base de datos especificada. Si el parámetro database_name se omite, se devuelve el identificador de base de datos actual.
OBJECT_ID('table_name')
Una llamada a la función OBJECT_ID .
OBJECT_ID es int. Esta función acepta un nombre de tabla y devuelve el ID de la tabla que contiene el índice de texto completo para inspeccionar.
Tabla devuelta
| Nombre de la columna | Tipo de dato | Anulable | Descripción |
|---|---|---|---|
keyword
1 |
varbinary(128) | No | Representación hexadecimal de la palabra clave que se almacena dentro del índice de texto completo. |
display_term
1 |
nvarchar(4000) | No | Formato legible de la palabra clave. Este formato se deriva del formato interno que se almacena en el índice de texto completo. |
column_id |
int | No | Identificador de la columna en que la palabra clave actual forma parte del índice de texto completo. |
document_id |
bigint | Sí | Identificador del documento o fila en que el término actual se indizó con texto completo. Este identificador corresponde al valor de clave de texto completo de ese documento o fila. |
property_id |
int | Sí | ID interno de propiedad de la propiedad de búsqueda dentro del índice de texto completo de la tabla que especificaste en el OBJECT_ID parámetro. |
10xFF representa el carácter especial que indica el final de un archivo o conjunto de datos.
Cuando una propiedad determinada se agrega a una lista de propiedades de búsqueda, el servicio Motor de búsqueda de texto completo registra la propiedad y le asigna un identificador de propiedad interno que es específico de esa lista de propiedades. El identificador de propiedad interno, que es un entero, es único para una lista de propiedades de búsqueda determinada. Si una propiedad determinada se registra para varias listas de propiedades de búsqueda, se puede asignar un identificador de propiedad interno diferente para cada lista de propiedades de búsqueda.
Note
El ID interno de propiedad es distinto del identificador entero de propiedad que se especifica al añadir la propiedad a la lista de propiedades de búsqueda. Para obtener más información, vea Buscar propiedades de documento con listas de propiedades de búsqueda.
Para ver la asociación entre property_id y el nombre de la propiedad, véase sys.registered_search_properties.
Comentarios
Esta vista de administración dinámica puede responder preguntas como las siguientes:
¿Qué contenido se almacena en una determinada propiedad de un DocID específico?
¿Qué frecuencia tiene una determinada propiedad entre los documentos indizados?
¿Qué documentos contienen realmente una propiedad determinada? Esto es útil si consultar en una propiedad de búsqueda dada no devuelve un documento que esperabas encontrar.
Cuando la columna de clave de texto completo es un tipo de dato entero, como se recomienda, se document_id asigna directamente al valor clave de texto completo en la tabla base.
En cambio, cuando la columna de clave de texto completo usa un tipo de dato no entero, document_id no representa la clave de texto completo en la tabla base. En este caso, para identificar la fila en la tabla base que se devuelve por dm_fts_index_keywords_by_property, necesitas unir esta vista con los resultados devueltos por sp_fulltext_keymappings.
Para poder combinarlos, debe almacenar la salida del procedimiento almacenado en una tabla temporal. Luego puedes unir la document_id columna de dm_fts_index_keywords_by_property con la DocId columna que se devuelve por este procedimiento almacenado. Una columna de marca de tiempo no puede recibir valores en el momento de insertar, porque son generados automáticamente por SQL Server. Por lo tanto, la columna timestamp debe convertirse en columnas varbinary(8). En el ejemplo siguiente se muestran estos pasos. En este ejemplo, @table_id es el ID de tu tabla, database_name es el nombre de tu base de datos y table_name es el nombre de tu tabla.
USE database_name;
GO
CREATE TABLE #MyTempTable
(
docid INT PRIMARY KEY,
[key] INT NOT NULL
);
DECLARE @db_id AS INT = DB_ID(N'database_name');
DECLARE @table_id AS INT = OBJECT_ID(N'table_name');
INSERT INTO #MyTempTable
EXECUTE sp_fulltext_keymappings @table_id;
SELECT *
FROM sys.dm_fts_index_keywords_by_property(@db_id, @table_id) AS kbd
INNER JOIN #MyTempTable AS tt
ON tt.[docid] = kbd.document_id;
GO
Permissions
Requiere SELECT permiso para las columnas cubiertas por el índice de texto completo y CREATE FULLTEXT CATALOG permisos.
Examples
En el siguiente ejemplo se devuelven las palabras clave de la propiedad Author en el índice de texto completo de la tabla Production.Document de la base de datos de ejemplo AdventureWorks2025. El ejemplo utiliza el alias KWBPOP para la tabla devuelto por sys.dm_fts_index_keywords_by_property El ejemplo utiliza uniones internas para combinar columnas de sys.registered_search_properties y sys.fulltext_indexes.
-- Once the full-text index is configured to support property searching
-- on the Author property, return any keywords indexed for this property.
USE AdventureWorks2025;
GO
SELECT KWBPOP.*
FROM sys.dm_fts_index_keywords_by_property(DB_ID(), OBJECT_ID('Production.Document')) AS KWBPOP
INNER JOIN sys.registered_search_properties AS RSP
ON ((KWBPOP.property_id = RSP.property_id)
AND (RSP.property_name = 'Author'))
INNER JOIN sys.fulltext_indexes AS FTI
ON ((FTI.[OBJECT_ID] = OBJECT_ID('Production.Document'))
AND (RSP.property_list_id = FTI.property_list_id));
GO
Contenido relacionado
- Búsqueda de texto completo
- Mejorar el rendimiento de los índices de texto completo
- sp_fulltext_keymappings (Transact-SQL)
- sys.dm_fts_index_keywords_by_document (Transact-SQL)
- sys.dm_fts_index_keywords (Transact-SQL)
- sys.registered_search_properties (Transact-SQL)
- sys.registered_search_property_lists (Transact-SQL)
- Buscar propiedades de documentos con listas de propiedades de búsqueda