Share via


Cambios principales en la búsqueda de texto completo

En este tema se describen los principales cambios producidos en la búsqueda de texto completo. Estos cambios pueden provocar errores en las aplicaciones, en los scripts o en las funcionalidades basados en versiones anteriores de SQL Server. Podría encontrar estos problemas al actualizar. Para obtener más información, vea Usar el Asesor de actualizaciones para preparar las actualizaciones.

Cambios importantes en la búsqueda de texto completo de SQL Server 2012

Intercalación modificada para la columna de nombre en sys.fulltext_languages

La intercalación de la columna de nombre de idioma en la vista de catálogo sys.fulltext_languages (Transact-SQL) se ha cambiado y ha pasado de la intercalación fija de la base de datos Resource a la intercalación predeterminada que se haya seleccionado para la instancia de SQL Server. Este cambio permite comparar los valores en la columna nombre cuando se combina la vista de sys.syslanguages (Transact-SQL) con sys.fulltext_languages. Por ejemplo, puede consultar para todas las bases de datos donde el idioma de texto completo predeterminado es distinto del idioma predeterminado de la base de datos.

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

Se aplican los siguientes cambios principales a la búsqueda de texto completo entre SQL Server 2005 y SQL Server 2008 y versiones posteriores.

Característica

Escenario

SQL Server 2005

SQL Server 2008 y versiones posteriores.

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 FREETEXTTABLE Transact-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 y 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.

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

Usar el 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.

[!NOTA]

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

sys.fulltext_catalogs

Usar path, 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

Usar la columna path 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

Usar 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

Usar 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 filas vacías.

DATABASEPROPERTYEX

Uso de 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.

Vea también

Conceptos

Cambios de comportamiento en la búsqueda de texto completo

Búsqueda de texto completo (SQL Server)