Cambios recientes en la búsqueda de texto completo de SQL Server 2008

En este tema se describen los principales cambios producidos en la búsqueda de texto completo. Estos cambios pueden provocar errores en aplicaciones, scripts o funcionalidades que estén basadas en versiones anteriores de SQL Server. Estos problemas se pueden presentar al llevar a cabo la actualización. Para obtener más información, vea Usar el Asesor de actualizaciones para preparar las actualizaciones.

Últimos cambios

Las siguientes cambios recientes se aplican a la búsqueda de texto completo de SQL Server 2008.

Característica

Escenario

SQL Server 2005

SQL Server 2008

CONTAINSTABLE con tipos definidos por el usuario (UDT)

La clave de texto completo es un tipo definido por el usuario de SQL Server, por ejemplo, MyType = char(1).

La clave devuelta es del tipo asignado al tipo definido por el usuario.

En el ejemplo, sería char(1).

La clave devuelta es del tipo definido por el usuario. En el ejemplo, sería MyType.

Parámetro top_n_by_rank (de las instrucciones CONTAINSTABLE y FREETEXTTABLETransact-SQL)

Consultas top_n_by_rank que usan 0 como parámetro.

Produce un mensaje de error que indica que debe utilizar un valor mayor que cero.

Tiene éxito y devuelve cero filas.

CONTAINSTABLE e ItemCount

Eliminar las filas de la tabla base antes de insertar los cambios en MSSearch.

CONTAINSTABLE devuelve el registro fantasma. ItemCount no se cambia.

CONTAINSTABLE no devuelve ningún registro fantasma.

FREETEXT o FREETEXTTABLE

Buscar una frase exacta.

Si la cadena de búsqueda (freetext_string) está incluida dentro de comillas tipográficas, el proceso de búsqueda de coincidencias de sinónimos y lematización no se realiza, y la cadena solo devuelve las coincidencias exactas como si se tratara de la búsqueda de una frase. Por ejemplo, si se especificara "envíos rápidos" en un predicado FREETEXT, solo se devolverían las filas que contuvieran "envíos rápidos". La expresión "envíos de paquetes rápidos" no se devolvería.

FREETEXT y FREETEXTTABLE ya no permiten las búsquedas de frases y realizan el proceso de coincidencia de sinónimos y lematización con independencia de si la cadena de búsqueda está incluida entre comillas simples o tipográficas. Por ejemplo, al buscar "envíos rápidos" se devolverían tanto la cadena "envíos rápidos" como "envíos de paquetes rápidos".

Para buscar una frase, utilice CONTAINS o CONTAINSTABLE.

ItemCount

La tabla contiene documentos nulos o columnas de tipo.

Además de los documentos indizados, los documentos que son nulos o que tienen tipos nulos se contabilizan en el valor ItemCount.

Solo los documentos indizados se contabilizan en el valor ItemCount.

ItemCount de catálogo

Columna Blob con una extensión NULL.

Se contabiliza en ItemCount de catálogo

No se contabiliza en ItemCount de catálogo.

UniqueKeyCount

Consultar un recuento de claves únicas de un catálogo, por ejemplo, dos tablas (table1 y table2) cada una con tres palabras: word1, word2 y word3.

UniqueKeyCount = 9. En la tabla siguiente se resume cómo se obtiene este valor:

table1 = 3

EOF para el índice de texto completo de table1 = 1

table2 = 3

EOF para el índice de texto completo de table2 = 1

catálogo de texto completo = 1

Para cada tabla, UniqueKeyCount es el número de palabras clave distintas + 1 (0xFF). NO trata las mismas palabras en > 1 doc como una nueva clave única.

Para un catálogo, UniqueKeyCount es la suma del UniqueKeyCount de cada una de las tablas bajo el catálogo. Las palabras idénticas de las tablas diferentes se tratan como claves únicas. En este caso, el recuento de claves únicas es 8.

Opción precompute rank de nivel de servidor

Optimización de rendimiento de las consultas FREETEXTTABLE.

Cuando el valor de la opción es 1, las consultas FREETEXTTABLE especificadas con top_n_by_rank utilizan los datos de rangos precalculados almacenados en los catálogos de texto completo.

No se admite.

sp_fulltext_pendingchanges al actualizar la columna de clave

Actualizar la columna de clave de texto completo en una fila de una tabla de 2 filas y ejecutar sp_fulltext_pendingchanges.

Ambas filas aparecen.

Solo aparece una fila.

Funciones insertadas

Funciones insertadas con un operador de texto completo

Devuelve un mensaje de error.

Devuelve las filas pertinentes.

sp_fulltext_database

Habilitar o deshabilitar la búsqueda de texto completo con sp_fulltext_database.

No se devuelve ningún resultado para las consultas de texto completo. Si el texto completo está deshabilitado para la base de datos, no se permiten operaciones de texto completo.

Devuelve resultados para las consultas de texto completo y las operaciones de texto completo permitidas, aun cuando el texto completo esté deshabilitado para la base de datos.

Palabras irrelevantes específicas de la configuración regional

Consultas en tipos Variant específicos de la configuración regional de un idioma principal, como francés belga y francés canadiense.

Los componentes (separadores de palabras, lematizadores y palabras irrelevantes) del idioma principal procesan las consultas en tipos Variant específicos de la configuración regional. Por ejemplo, los componentes de francés (Francia) se utilizan para analizar el francés (Bélgica).

Debe agregar explícitamente las palabras irrelevantes para cada identificador de configuración regional (LCID). Por ejemplo, necesitaría especificar un LCID para Bélgica, Canadá y Francia.

Proceso de lematización de sinónimos

Uso de diccionario de sinónimos y formas no flexionadas (lematización).

Una palabra del diccionario de sinónimos se lematiza automáticamente después de su expansión.

Si desea la forma flexionada en la expansión, tiene que agregarla explícitamente.

Ruta de acceso del catálogo de texto completo y grupo de archivos

Trabajar con catálogos de texto completo.

Cada catálogo de texto completo tiene una ruta de acceso física y pertenece a un grupo de archivos. Se trata como un archivo de base de datos.

Un catálogo de texto completo es un objeto virtual y no pertenece a ningún grupo de archivos. Un catálogo de texto completo es un concepto lógico que hace referencia a un grupo de índices de texto completo.

NotaNota
Las instrucciones DDL de SQL Server 2005Transact-SQL que especifican los catálogos de texto completo funcionan correctamente.

sys.fulltext_catalogs

Utilizar la ruta de acceso, data_space_id y file_id de esta vista de catálogo.

Estas columnas devuelven un valor concreto.

Estas columnas devuelven NULL porque el catálogo de texto completo ya no se encuentra en el sistema de archivos.

sys.sysfulltextcatalogs

Utilizar la columna de ruta de acceso de esta tabla del sistema desusada.

Devuelve la ruta de acceso al sistema de archivos del catálogo de texto completo.

Devuelve NULL porque el catálogo de texto completo ya no se encuentra en el sistema de archivos.

sp_help_fulltext_catalogs

sp_help_fulltext_catalogs_cursor

Utilizar la columna PATH de estos procedimientos almacenados desusados.

Devuelve la ruta de acceso al sistema de archivos del catálogo de texto completo.

Devuelve NULL porque el catálogo de texto completo ya no se encuentra en el sistema de archivos.

sp_help_fulltext_catalog_components

Utilizar sp_help_fulltext_catalog_components de este procedimiento almacenado.

Devuelve una lista con todos los componentes (filtros, separadores de palabras y controladores de protocolo) que se usan en los catálogos de texto completo de la base de datos actual.

Devuelve las filas vacías.

DATABASEPROPERTY y DATABASEPROPERTYEX

Utilizar la propiedad IsFullTextEnabled.

El valor IsFullTextEnabled indica si la búsqueda de texto completo está habilitada en una base de datos determinada.

El valor de esta columna no tiene ningún efecto. En las bases de datos de usuario siempre está habilitada la búsqueda de texto completo.

Historial de cambios

Contenido actualizado

Se ha agregado una fila a la tabla sobre la característica FREETEXT.