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 Use Upgrade Advisor to Prepare for Upgrades.
Cambios importantes en la búsqueda de Full-Text en SQL Server 2014
La información se proporcionará posteriormente.
Cambios importantes en Full-Text Search en 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 de la vista de catálogo sys.fulltext_languages (Transact-SQL) se ha cambiado de la intercalación fija de la base de datos de recursos a la intercalación predeterminada seleccionada para la instancia de SQL Server. Este cambio permite comparar los valores de la columna name al combinar la vista 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
Los siguientes cambios importantes se aplican a Full-Text Search 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 SQL Server definido por el usuario, 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. |
top_n_by_rank parámetro (de las instrucciones Transact-SQL CONTAINSTABLE y FREETEXTTABLE) | top_n_by_rank consultas 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 indexados, los documentos que son null o que tienen tipos NULL se cuentan en el valor ItemCount . | Solo se cuentan los documentos indexados en el valor ItemCount . |
Catalog ItemCount | Columna Blob con una extensión NULL. | Se cuenta en ItemCount del catálogo. | No se cuenta en ItemCount del 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 alcanza 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). Esto no trata las mismas palabras en > 1 documento como nueva clave única. Para un catálogo, UniqueKeyCount es la suma de UniqueKeyCount de cada una de las tablas del 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. |
Precompute rank server-level option | Optimización de rendimiento de las consultas FREETEXTTABLE. | Cuando la opción se establece en 1, las consultas FREETEXTTABLE especificadas con top_n_by_rank usar los datos de clasificación precalados 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 | Consulta variantes específicas de inlocale de un idioma primario, como francés belga y francés canadiense. | Los componentes (separadores de palabras, lematizadores y palabras irrelevantes) de su idioma primario procesan las consultas específicas de la ubicación. 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: SQL Server instrucciones DDL de 2005Transact-SQL que especifican 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 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. |
Consulte también
Cambios de comportamiento en la búsqueda de texto completo
Búsqueda de texto completo