sys.dm_fts_index_keywords_by_document (Transact-SQL)

Se aplica a: SQL Server Azure SQL Instancia administrada Analytics Platform System (PDW)

Devuelve información sobre el contenido de nivel de documento de un índice de texto completo asociado a la tabla especificada.

sys.dm_fts_index_keywords_by_document es una función de administración dinámica.

Para ver información de índice de texto completo de nivel superior

Para ver información sobre el contenido de nivel de propiedad relacionado con una propiedad de documento

Sintaxis

  
sys.dm_fts_index_keywords_by_document  
(   
    DB_ID('database_name'),     OBJECT_ID('table_name')   
)  

Argumentos

db_id('database_name')
Una llamada a la función DB_ID(). Esta función acepta un nombre de base de datos y devuelve el identificador de base de datos, que sys.dm_fts_index_keywords_by_document utiliza para buscar 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(). Esta función acepta un nombre de tabla y devuelve el identificador de la tabla que contiene el índice de texto completo que se va a inspeccionar.

Tabla devuelta

Columna Tipo de datos Descripción
keyword nvarchar(4000) Representación hexadecimal de la palabra clave que se almacena dentro del índice de texto completo.

Nota: OxFF representa el carácter especial que indica el final de un archivo o un conjunto de datos.
display_term nvarchar(4000) Formato legible de la palabra clave. Este formato se deriva del formato interno que se almacena en el índice de texto completo.

Nota: OxFF representa el carácter especial que indica el final de un archivo o un conjunto de datos.
column_id int Identificador de la columna en que la palabra clave actual forma parte del índice de texto completo.
document_id int 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.
occurrence_count int Número de repeticiones de la palabra clave actual en el documento o fila indicado por document_id. Cuando se especifica "search_property_name", occurrence_count muestra solo el número de apariciones de la palabra clave actual en la propiedad de búsqueda especificada dentro del documento o fila.

Comentarios

La información devuelta por sys.dm_fts_index_keywords_by_document es útil para averiguar lo siguiente, entre otras cosas:

  • El número total de palabras clave que contiene un índice de texto completo.

  • Si una palabra clave forma parte de un documento o fila determinados.

  • Cuántas veces aparece una palabra clave en el índice de texto completo; es decir:

    (SUM(occurrence_count) WHERE palabra clave=keyword_value )

  • Número de veces que una palabra clave aparece en un documento o fila determinados.

  • Número de palabras clave contenidas en un documento o fila determinados.

Además, también puede utilizar la información proporcionada por sys.dm_fts_index_keywords_by_document para recuperar todas las palabras clave que pertenecen a un documento o fila determinados.

Cuando la columna de clave de texto completo es un tipo de datos entero, como se recomienda, document_id se asigna directamente al valor de clave de texto completo de la tabla base.

Por el contrario, cuando la columna de clave de texto completo utiliza un tipo de datos que no es entero, document_id no representa la clave de texto completo en la tabla base. En este caso, para identificar la fila de la tabla base devuelta por dm_fts_index_keywords_by_document, debe combinar esta vista con los resultados devueltos por sp_fulltext_keymappings. Para poder combinarlos, debe almacenar la salida del procedimiento almacenado en una tabla temporal. A continuación, puede combinar la columna document_id de dm_fts_index_keywords_by_document con la columna DocId que este procedimiento almacenado devuelve. Tenga en cuenta que una columna de marca de tiempo no puede recibir valores en tiempo de inserción, ya que SQL Server los genera automáticamente. 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 identificador de la tabla, database_name es el nombre de la base de datos y table_name es el nombre de la tabla.

USE database_name;  
GO  
CREATE TABLE #MyTempTable   
   (  
      docid INT PRIMARY KEY ,  
      [key] INT NOT NULL  
   );  
DECLARE @db_id int = db_id(N'database_name');  
DECLARE @table_id int = OBJECT_ID(N'table_name');  
INSERT INTO #MyTempTable EXEC sp_fulltext_keymappings @table_id;  
SELECT * FROM sys.dm_fts_index_keywords_by_document   
   ( @db_id, @table_id ) kbd  
   INNER JOIN #MyTempTable tt ON tt.[docid]=kbd.document_id;  
GO  
  

Permisos

Necesita el permiso SELECT en las columnas cubiertas por el índice de texto completo y permisos CREATE FULLTEXT CATALOG.

Ejemplos

A Mostrar el contenido del índice de texto completo en el nivel de documento

En el ejemplo siguiente se muestra el contenido del índice de texto completo en el nivel de documento en la tabla HumanResources.JobCandidate de la base de datos de ejemplo AdventureWorks2022.

Nota:

Puede crear este índice ejecutando el ejemplo proporcionado para la HumanResources.JobCandidate tabla en CREATE FULLTEXT INDEX (Transact-SQL).

SELECT * FROM sys.dm_fts_index_keywords_by_document(db_id('AdventureWorks2022'),   
object_id('HumanResources.JobCandidate'));  
GO  

Consulte también

Funciones y vistas de administración dinámica de búsqueda semántica y búsqueda de texto completo (Transact-SQL)
Búsqueda de texto completo
sys.dm_fts_index_keywords (Transact-SQL)
sys.dm_fts_index_keywords_by_property (Transact-SQL)
sp_fulltext_keymappings (Transact-SQL)
Mejorar el rendimiento de los índices de texto completo