Separadores de palabras y lematizadores

Los separadores de palabras y lematizadores realizan un análisis lingüístico de todos los datos indizados de texto completo. El análisis lingüístico incluye la búsqueda de los límites de las palabras (separación de palabras) y la conjugación de los verbos (lematización). Los separadores de palabras y lematizadores son específicos del idioma, y las reglas para el análisis lingüístico difieren en los diferentes idiomas. Para un idioma determinado, un separador de palabras identifica las palabras individuales determinando los límites de palabras en función de las reglas léxicas de ese idioma. Cada palabra (también conocida como token) se inserta en el índice de texto completo utilizando una representación comprimida para reducir su tamaño. El lematizador genera las formas de inflexión de una palabra determinada en función de las reglas de ese idioma (por ejemplo, "corriendo", "corrió" y "corredor" son varias formas de la palabra "carrera").

El uso de separadores de palabras específicos del idioma permite que los términos resultantes sean más precisos para dicho idioma. Cuando hay un separador de palabras para la familia de idiomas, pero no para el subidioma específico, se utiliza el del idioma principal. Por ejemplo, el separador de palabras del francés se utiliza en el texto escrito en francés de Canadá. Si no hay ningún separador de palabras disponible para un idioma concreto, se utiliza el separador de palabras neutral. El separador de palabras neutral divide las palabras en caracteres neutrales como espacios y marcas de puntuación.

Registro de los separadores de palabras

Para usar los separadores de palabras de un idioma, se deben registrar. Con los separadores de palabras registrados, los recursos lingüísticos asociados (lematizadores, palabras irrelevantes y archivos de sinónimos) también están disponibles para las operaciones de indización y consulta de texto completo. Para ver una lista de los idiomas cuyos separadores de palabras están registrados en SQL Server, use la instrucción Transact-SQL:

SELECT * FROM sys.fulltext_languages

Si agrega, quita o modifica un separador de palabras, necesita actualizar la lista de identificadores de configuración regional (LCID) de Microsoft Windows que se admiten para la indización y las consultas de texto completo. Para obtener más información, vea Cómo modificar la lista de filtros y separadores de palabras registrados (Transact-SQL).

En SQL Server 2008 se incluyen varios separadores de palabras de terceros autorizados. Puede cargar manualmente otros separadores de palabras de terceros (y lematizadores) para distintos idiomas (danés, polaco y turco). Estos separadores de palabras no están habilitados de manera predeterminada porque son propiedad de terceros que todavía no han proporcionado el nivel de pruebas, seguridad y estabilidad necesario. Para obtener más información, vea Cómo cargar separadores de palabras de terceros con licencia.

Opción de idioma de texto completo

En las versiones traducidas de SQL Server, el programa de instalación de SQL Server establece la opción default full-text language en el idioma del servidor si existe una correspondencia apropiada. En las versiones no traducidas de SQL Server, la opción default full-text language es el inglés.

Al crear o modificar un índice de texto completo, puede especificar un idioma diferente para cada columna indizada de texto completo. Si no se especifica un idioma para una columna, el valor predeterminado es el de la opción de configuración default full-text language.

Para obtener más información, vea default full-text language (opción).

Nota

Todas las columnas de una cláusula de función de consulta de texto completo deben utilizar el mismo idioma, a menos que se especifique la opción LANGUAGE en la consulta. El idioma de la columna indizada de texto completo que se consulta determina el análisis lingüístico realizado en los argumentos de los predicados de la consulta de texto completo (CONTAINS y FREETEXT) y de las funciones (CONTAINSTABLE y FREETEXTTABLE).

Elegir un idioma al crear un índice de texto completo para una columna

Al crear un índice de texto completo, es recomendable que especifique un idioma para cada columna indizada. Si un idioma no se especifica para una columna, el sistema utiliza el idioma predeterminado del sistema. El idioma de una columna determina el separador de palabras y el lematizador que se utilizará para indizar esa columna. Además, las consultas de texto completo de la columna utilizarán el archivo de diccionario de sinónimos del idioma.

Hay varios aspectos que deben tenerse en cuenta al elegir el idioma de columna cuando se crea un índice de texto completo. Estas consideraciones se refieren al modo en que se acorta el texto y se indiza a continuación mediante el motor de texto completo. Para obtener más información, vea Prácticas recomendadas para elegir un idioma al crear un índice de texto completo.

Para ver el idioma del separador de palabras de una columna

Efecto de los nuevos separadores de palabras de SQL Server 2008

SQL Server 2008 incluye separadores de palabras para más de 50 idiomas de los que 23 también están incluidos en SQL Server 2005. Los únicos separadores de palabras que siguen siendo iguales son los separadores de palabras de inglés, coreano, tailandés y chino (tradicional y simplificado). Para otros idiomas, SQL Server 2008 incluye una nueva generación de separadores de palabras que tienen mejores reglas lingüísticas y son más precisos que los anteriores. Posiblemente, los nuevos separadores de palabras podrían comportarse de manera ligeramente diferente que los de los índices de texto completo de SQL Server 2005 importados. Esto es significativo si se importó un catálogo de texto completo cuando una base de datos de SQL Server 2005 se actualizó a SQL Server 2008. Un o varios idiomas que usen los índices de texto completo del catálogo de texto completo podrían estar asociados ahora a nuevos separadores de palabras. Para obtener más información, vea Actualización de la búsqueda de texto completo.

Versiones de los separadores de palabras de los idiomas admitidos en SQL Server 2005

Los únicos separadores de palabras que siguen siendo iguales son los separadores de palabras de inglés, coreano, tailandés y chino (tradicional y simplificado). La tabla siguiente muestra los separadores de palabras que existían en SQL Server 2005 e indica si se han actualizado en SQL Server 2008. Para obtener una lista completa de todos los separadores de palabras de SQL Server 2008, vea sys.fulltext_languages (Transact-SQL).

Nota

Los separadores de palabras para la mayoría de los idiomas están registrados de forma predeterminada. Sin embargo, existen varios separadores de palabras de terceros con licencia que están deshabilitados de forma predeterminada. Para obtener información sobre estos idiomas y cómo registrar estos separadores de palabras, vea Cómo cargar separadores de palabras de terceros con licencia.

Lenguaje

LCID

Separadores de palabras

Portugués (Brasil)

1046

Nuevo

Chino (Hong Kong ZAE, RPC)

3076

Sin cambios

Chino (Macao RAE)

5124

Sin cambios

Chino (Singapur)

4100

Sin cambios

Danés (está deshabilitado de forma predeterminada)

1030

Sin cambios

Neerlandés

1043

Nuevo

Inglés

1033

Sin cambios

Inglés (Reino Unido)

2057

Sin cambios

Francés

1036

Nuevo

Alemán

1031

Nuevo

Italiano

1040

Nuevo

Japonés

1041

Nuevo

Coreano

1042

Sin cambios

Neutro

0

Nuevo

Polaco (está deshabilitado de forma predeterminada)

1045

Sin cambios

Portugués

2070

Nuevo

Ruso

1049

Nuevo

Chino simplificado

2052

Sin cambios

Español

3082

Nuevo

Sueco

1053

Nuevo

Tailandés

1054

Sin cambios

Chino tradicional

1028

Sin cambios

Turco (está deshabilitado de forma predeterminada)

1055

Sin cambios

Para obtener una lista completa de los idiomas admitidos, vea sys.fulltext_languages (Transact-SQL).

Errores de tiempo de espera en la división de palabras

Se puede producir un error de tiempo de espera en la separación de palabras en diversas situaciones: Para obtener información sobre estas situaciones y cómo responder en cada situación, vea MSSQLSERVER_30053.

Obtener información acerca de los separadores de palabras

Ver el resultado de la tokenización de una combinación entre un separador de palabras, un diccionario de sinónimos y una lista de palabras irrelevantes

Para devolver información sobre los separadores de palabras registrados