sys.dm_fts_index_keywords_by_property (Transact-SQL)sys.dm_fts_index_keywords_by_property (Transact-SQL)

Se aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions) Se aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions)

Devuelve todo el contenido relacionado con propiedades en el índice de texto completo de una tabla determinada.Returns all property-related content in the full-text index of a given table. 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.This includes all data that belongs to any property registered by the search property list associated with that full-text index.

sys.dm_fts_index_keywords_by_property es una función de administración dinámica que permite ver qué propiedades registradas ha emitido IFilters en el momento del índice, así como el contenido exacto de cada una de las propiedades de cada documento indizado.sys.dm_fts_index_keywords_by_property is a dynamic management function that enables you to see what registered properties were emitted by IFilters at index time, as well as the exact content of every property in each indexed document.

Para ver todo el contenido en el nivel de documento (incluido el contenido relacionado con las propiedades)To view all document-level content (including property-related content)

Para ver información de nivel superior sobre un índice de texto completoTo view higher-level full-text index information

Nota

Para obtener información sobre las listas de propiedades de búsqueda, vea Buscar propiedades de documento con listas de propiedades de búsqueda.For information about search property lists, see Search Document Properties with Search Property Lists.

SintaxisSyntax

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

ArgumentosArguments

db_id ('database_name')db_id('database_name')
Una llamada a la función DB_ID () .A call to the DB_ID() function. 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_property usa para encontrar la base de datos especificada.This function accepts a database name and returns the database ID, which sys.dm_fts_index_keywords_by_property uses to find the specified database. Si el parámetro database_name se omite, se devuelve el identificador de base de datos actual.If database_name is omitted, the current database ID is returned.

object_id ('TABLE_NAME')object_id('table_name')
Una llamada a la función OBJECT_ID () .A call to the OBJECT_ID() function. 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.This function accepts a table name and returns the table ID of the table containing the full-text index to inspect.

Tabla devueltaTable Returned

ColumnaColumn Tipo de datosData type DescripciónDescription
palabra clavekeyword nvarchar(4000)nvarchar(4000) Representación hexadecimal de la palabra clave que se almacena dentro del índice de texto completo.The hexadecimal representation of the keyword that is stored inside the full-text index.

Nota: OxFF representa el carácter especial que indica el final de un archivo o conjunto de archivos.Note: OxFF represents the special character that indicates the end of a file or dataset.
display_termdisplay_term nvarchar(4000)nvarchar(4000) Formato legible de la palabra clave.The human-readable format of the keyword. Este formato se deriva del formato interno que se almacena en el índice de texto completo.This format is derived from the internal format that is stored in the full-text index.

Nota: OxFF representa el carácter especial que indica el final de un archivo o conjunto de archivos.Note: OxFF represents the special character that indicates the end of a file or dataset.
column_idcolumn_id intint Identificador de la columna en que la palabra clave actual forma parte del índice de texto completo.ID of the column from which the current keyword was full-text indexed.
document_iddocument_id intint Identificador del documento o fila en que el término actual se indizó con texto completo.ID of the document or row from which the current term was full-text indexed. Este identificador corresponde al valor de clave de texto completo de ese documento o fila.This ID corresponds to the full-text key value of that document or row.
property_idproperty_id intint IDENTIFICADOR de propiedad interno de la propiedad de búsqueda en el índice de texto completo de la tabla que especificó en el parámetro OBJECT_ID ('TABLE_NAME').Internal property ID of the search property within the full-text index of the table that you specified in the OBJECT_ID('table_name') parameter.

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.When a given property is added to a search property list, the Full-Text Engine registers the property and assigns it an internal property ID that is specific to that property list. El identificador de propiedad interno, que es un entero, es único para una lista de propiedades de búsqueda determinada.The internal property ID, which is an integer, is unique to a given search property list. 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.If a given property is registered for multiple search property lists, a different internal property ID might be assigned for each search property list.

Nota: el identificador de propiedad interno es distinto del identificador entero de la propiedad que se especifica al agregar la propiedad a la lista de propiedades de búsqueda.Note: The internal property ID is distinct from the property integer identifier that is specified when adding the property to the search property list. Para obtener más información, vea Buscar propiedades de documento con listas de propiedades de búsqueda.For more information, see Search Document Properties with Search Property Lists.

Para ver la asociación entre property_id y el nombre de la propiedad:To view the association between property_id and the property name:
sys.registered_search_properties (Transact-SQL)sys.registered_search_properties (Transact-SQL)

ObservacionesRemarks

Esta vista de administración dinámica puede responder preguntas como las siguientes:This dynamic management view can answer questions such as the following:

  • ¿Qué contenido se almacena en una determinada propiedad de un DocID específico?What content is stored on a given property for a given DocID?

  • ¿Qué frecuencia tiene una determinada propiedad entre los documentos indizados?How common is a given property among the indexed documents?

  • ¿Qué documentos contienen realmente una propiedad determinada?What documents actually contain a given property? Todo esto resulta útil si al consultar una determinada propiedad de búsqueda, no se devuelve ninguno de los documentos que esperaba localizar.This is useful if querying on a given search property does not return a document that you expected to find.

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.When the full-text key column is an integer data type, as recommended, the document_id maps directly to the full-text key value in the base table.

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.In contrast, when the full-text key column uses a non-integer data type, document_id does not represent the full-text key in the base table. En este caso, para identificar la fila de la tabla base devuelta por dm_fts_index_keywords_by_property, debe combinar esta vista con los resultados devueltos por sp_fulltext_keymappings.In this case, to identify the row in the base table that is returned by dm_fts_index_keywords_by_property, you need to join this view with the results returned by sp_fulltext_keymappings. Para poder combinarlos, debe almacenar la salida del procedimiento almacenado en una tabla temporal.Before you can join them, you must store the output of the stored procedure in a temp table. A continuación, puede combinar el document_id columna de dm_fts_index_keywords_by_property con la columna DocId que devuelve este procedimiento almacenado.Then you can join the document_id column of dm_fts_index_keywords_by_property with the DocId column that is returned by this stored procedure. Tenga en cuenta que una columna de marca de tiempo no puede recibir valores en el momento de la inserción, porque los genera automáticamente SQL ServerSQL Server .Note that a timestamp column cannot receive values at insert time, because they are auto-generated by SQL ServerSQL Server. Por lo tanto, la columna timestamp debe convertirse en columnas varbinary (8) .Therefore, the timestamp column must be converted to varbinary(8) columns. En el ejemplo siguiente se muestran estos pasos.The following example shows these steps. 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.In this example, table_id is the ID of your table, database_name is the name of your database, and table_name is the name of your table.

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_property   
   ( @db_id, @table_id ) kbd  
   INNER JOIN #MyTempTable tt ON tt.[docid]=kbd.document_id;  
GO  
  

PermisosPermissions

Necesita el permiso SELECT en las columnas cubiertas por el índice de texto completo y permisos CREATE FULLTEXT CATALOG.Requires SELECT permission on the columns covered by the full-text index and CREATE FULLTEXT CATALOG permissions.

EjemplosExamples

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 AdventureWorks.The following example returns keywords from the Author property in the full-text index of the Production.Document table of the AdventureWorks sample database. En el ejemplo se utiliza el alias KWBPOP para la tabla devuelta por Sys.dm_fts_index_keywords_by_property.The example uses the alias KWBPOP for the table returned by sys.dm_fts_index_keywords_by_property. En el ejemplo se usan combinaciones internas para combinar columnas de Sys.registered_search_properties y Sys.fulltext_indexes.The example uses inner joins to combine columns from sys.registered_search_properties and 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 AdventureWorks2012;  
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  

Consulte tambiénSee Also

Búsqueda de texto completo Full-Text Search
Mejorar el rendimiento de los índices de Full-Text Improve the Performance of Full-Text Indexes
sp_fulltext_keymappings ()de Transact-SQL sp_fulltext_keymappings (Transact-SQL)
sys.dm_fts_index_keywords_by_document ()de Transact-SQL sys.dm_fts_index_keywords_by_document (Transact-SQL)
sys.dm_fts_index_keywords ()de Transact-SQL sys.dm_fts_index_keywords (Transact-SQL)
sys.registered_search_properties (Transact-SQL) sys.registered_search_properties (Transact-SQL)
sys.registered_search_property_lists (Transact-SQL) sys.registered_search_property_lists (Transact-SQL)
Buscar propiedades de documento con listas de propiedades de búsquedaSearch Document Properties with Search Property Lists