Proceso de indización de texto y consultas

El componente de indización de la búsqueda de texto es responsable del llenado inicial del índice de texto y de su actualización posterior cuando se modifican los datos de las tablas con índice de texto. La arquitectura del mecanismo de recopilación de texto se ha mejorado en Microsoft SQL Server 2005 con el fin de aumentar la eficacia del proceso de indización de texto, lo que contribuye a mejorar notablemente el rendimiento.

Proceso de indización de texto

Cuando se inicia un llenado de texto (también denominado rastreo), el Motor de base de datos inserta grandes lotes de datos en la memoria e indica al servicio Motor de texto de Microsoft para SQL Server (MSFTESQL) que inicie la indización. El servicio MSFTESQL indiza el carácter y los datos binarios con formato de una columna o columnas de una tabla. El motor de texto utiliza un componente de controlador de protocolo para extraer los datos de la memoria para seguir procesándolos y obtener finalmente un índice de texto.

Cuando se indizan los datos almacenados en una columna varbinary(max) o image, el filtro, que implementa la interfaz IFilter, extrae texto basándose en el formato de archivo especificado para los datos (por ejemplo, Microsoft Word). En algunos casos, los componentes de filtro requieren que los datos varbinary(max) o image se escriban en el directorio Temp de la cuenta de servicio, en lugar de insertarse en la memoria.

Como parte del procesamiento, los datos de texto recopilados se pasan a través de un separador de palabras para dividir el texto en testigos o palabras clave individuales. El idioma que se utiliza para la conversión en testigos se especifica en el nivel de columna o bien se identifica en los datos varbinary(max), image o xml mediante el componente de filtro.

Puede llevarse a cabo un procesamiento adicional para quitar palabras irrelevantes y para normalizar los testigos antes de que se almacenen en el índice de texto o en un fragmento de índice.

Cuando se completa un llenado, se desencadena un proceso de mezcla final que mezcla los fragmentos de índice en un solo índice de texto maestro. Esto permite mejorar el rendimiento de las consultas, ya que únicamente es necesario realizar consultas en el índice maestro en lugar de hacerlo en varios fragmentos de índice y se pueden utilizar mejores estadísticas de puntuación para obtener la clasificación de importancia.

[!NOTA] La mezcla maestra puede requerir un uso intensivo de E/S, ya que es necesario escribir y leer una gran cantidad de datos cuando se mezclan los fragmentos de índice; sin embargo, esto no bloquea las consultas entrantes.

Proceso de consultas de texto

Una consulta de texto enviada desde un cliente va al procesador de consultas (QP) de SQL Server en el proceso de SQL Server. El procesador de consultas la pasa al componente de consultas de texto, que crea un árbol de comandos OLE DB y lo envía al servicio Motor de texto de Microsoft para SQL Server (MSFTESQL). En el proceso MSFTESQL, el procesador de consultas del Motor de texto procesa la consulta utilizando los archivos de sinónimos y palabras irrelevantes, así como separadores de palabras y lematizadores. Tras procesar esta consulta, el servicio MSFTESQL devuelve un conjunto de resultados al proceso de SQL Server. Este conjunto de resultados puede utilizarse para otros procesos o puede devolverse al cliente.

Vea también

Conceptos

Arquitectura de la búsqueda de texto

Otros recursos

Conceptos de la búsqueda de texto

Ayuda e información

Obtener ayuda sobre SQL Server 2005