Configuración del diccionario de sinónimos

En SQL Server, las consultas de texto completo pueden buscar sinónimos de los términos especificados por el usuario usando un diccionario de sinónimos. Un diccionario de sinónimos de SQL Server define un conjunto de sinónimos para un idioma concreto. Los administradores del sistema pueden definir dos formatos de sinónimos: conjuntos de expansión y conjuntos de reemplazo. Al desarrollar un diccionario de sinónimos personalizado para los datos de texto completo, puede ampliar de forma eficaz el ámbito de las consultas de texto completo en esos datos. La comprobación de coincidencia con el diccionario de sinónimos solo tiene lugar con las consultas CONTAINS y CONTAINSTABLE que especifican la cláusula FORMSOF THESAURUS y con las consultas FREETEXT y FREETEXTABLE.

Para que las consultas de búsqueda de texto completo en la instancia de servidor puedan buscar sinónimos en un idioma determinado, debe definir las asignaciones del diccionario de sinónimos para ese idioma. Cada diccionario de sinónimos se debe configurar manualmente para definir lo siguiente:

  • Configuración de signos diacríticos

    Para un diccionario de sinónimos determinado, todos los patrones de búsqueda son sensibles o insensibles a las marcas diacríticas como la tilde (~), marca del acento agudo (') o diéresis (¨) (es decir, distinguir acentos o no distinguir acentos). Por ejemplo, imagine que especifica el patrón "café" para que sea reemplazado por otros patrones en una consulta de búsqueda de texto completo. Si el archivo de sinónimos no distingue acentos, la búsqueda de texto completo reemplaza los patrones "café" y "cafe". Si el archivo de sinónimos distingue acentos, la búsqueda de texto completo solo reemplaza el patrón "café". De forma predeterminada, un diccionario de sinónimos no distingue acentos.

    [!NOTA]

    Para obtener información acerca de las marcas diacríticas, vea Marca diacrítica en la Enciclopedia MSN Encarta.

  • Conjunto de expansión

    Un conjunto de expansión contiene un grupo de sinónimos como "escritor", "autor" y "periodista" que se sustituyen entre si en una consulta de texto completo. Las consultas que contienen una coincidencia para algún sinónimo en un conjunto de expansión se expanden para incluir uno de cada dos sinónimos en el conjunto de expansión.

    Para obtener más información, vea "Estructura XML de un conjunto de expansión", posteriormente en este tema.

  • Conjunto de reemplazo

    Un conjunto de reemplazo contiene un patrón de texto que se reemplazará por un conjunto de sustitución. Para obtener un ejemplo, vea la sección "Estructura XML de un conjunto de reemplazo" más adelante en este tema.

[!NOTA]

Para conocer las restricciones y obtener recomendaciones para un archivo de diccionario de sinónimos, vea Cómo modificar un archivo de diccionario de sinónimos (búsqueda de texto completo).

SQL Server proporciona un conjunto de archivos de sinónimos XML, uno para cada idioma admitido. Estos archivos están esencialmente vacíos. Contienen solo la estructura XML de nivel superior que es común a todos los diccionarios de sinónimos de SQL Server y un diccionario de sinónimos de ejemplo como comentario.

Este tema contiene información para ayudar a realizar esta tarea, según se indica a continuación:

  • Contenido inicial de los archivos de sinónimos

  • Ubicación de los archivos de sinónimos

  • Cómo se usan los archivos de sinónimos en las consultas

  • Descripción de la estructura de un archivo de sinónimos

  • Trabajar con archivos de sinónimos

Contenido inicial de los archivos de sinónimos

Los archivos de sinónimos que se publican con SQL Server 2008 contienen el siguiente código XML:

<XML ID="Microsoft Search Thesaurus">

<!--  Commented out

    <thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
        <expansion>
            <sub>Internet Explorer</sub>
            <sub>IE</sub>
            <sub>IE5</sub>
        </expansion>
        <replacement>
            <pat>NT5</pat>
            <pat>W2K</pat>
            <sub>Windows 2000</sub>
        </replacement>
        <expansion>
            <sub>run</sub>
            <sub>jog</sub>
        </expansion>
    </thesaurus>
-->
</XML>

[Principio]

Ubicación de los archivos de sinónimos

La ubicación predeterminada de los archivos de sinónimos es la siguiente:

ruta_de_instalación_de_QL_Server\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\FTDATA\

Esta ubicación predeterminada contiene los archivos siguientes:

  • Archivos de sinónimos específicos del idioma

    Durante la instalación, los archivos de sinónimos vacíos se instalan en la ubicación anterior. Se proporciona un archivo independiente para cada idioma admitido. Un administrador del sistema puede personalizar estos archivos.

    Los nombres de archivo predeterminados de los archivos de sinónimos usan el formato siguiente:

    ‘ts’ + <abreviatura de idioma de tres letras> + '.xml'

    El nombre del archivo de diccionario de sinónimos para un idioma dado se especifica en el Registro en el valor siguiente: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<nombreDeInstancia>\MSSearch\<abreviaturaDeIdioma>.

  • El archivo de sinónimos global

    Un archivo de sinónimos global y vacío, tsGlobal.xml.

Puede cambiar la ubicación y los nombres de un archivo de sinónimos cambiando su clave del Registro. Para cada idioma, la ubicación del archivo de sinónimos se especifica en el valor siguiente en el Registro:

HKLM/SOFTWARE/Microsoft/Microsoft SQL Server/<nombre de instancia>/MSSearch/Language/<abreviatura_de_idioma>/TsaurusFile

El archivo de sinónimos global corresponde al idioma neutro con el LCID 0. Solo los administradores pueden cambiar este valor.

[Principio]

Cómo se usan los archivos de sinónimos en las consultas

Una consulta del diccionario de sinónimos utiliza un diccionario de sinónimos específico del idioma y el diccionario de sinónimos global. Primero, la consulta busca el archivo específico del idioma y lo carga para su procesamiento (a menos que ya esté cargado). La consulta se expande para incluir los sinónimos específicos del idioma especificados por las reglas de conjuntos de expansión y conjuntos de reemplazo en el archivo de diccionario de sinónimos. Estos pasos se repiten después para el diccionario de sinónimos global. Sin embargo, si un término ya forma parte de una coincidencia en el archivo de diccionario de sinónimos específico del idioma, el término es ilegible para coincidencias en el diccionario de sinónimos global.

[Principio]

Descripción de la estructura de un archivo de sinónimos

Cada archivo de sinónimos define un contenedor XML cuyo identificador es Microsoft Search Thesaurus y un comentario, <!-- ... -->, que contiene un diccionario de sinónimos de ejemplo. El diccionario de sinónimos se define en un elemento <thesaurus> que contiene ejemplos de los elementos secundarios que definen la configuración de los signos diacríticos, los conjuntos de expansión y los conjuntos de reemplazo, como se explica a continuación:

  • Estructura XML de la configuración de signos diacríticos

    La configuración de signos diacríticos de un diccionario de sinónimos se especifica en un único elemento <diacritics_sensitive>. Este elemento contiene un valor entero que controla la distinción de acentos, de la forma siguiente:

    Configuración de signos diacríticos

    Valor

    XML

    No distinguir acentos

    0

    <diacritics_sensitive>0</diacritics_sensitive>

    Distinguir acentos

    1

    <diacritics_sensitive>1</diacritics_sensitive>

    [!NOTA]

    Esta configuración sólo se puede aplicar una vez en el archivo, y se aplica a todos los patrones de búsqueda del mismo. Esta configuración no se puede especificar para patrones individuales.

  • Estructura XML de un conjunto de expansión

    Cada conjunto de expansión está delimitado por un elemento <expansion>. Dentro de este elemento, se especifican una o varias sustituciones en un elemento <sub>. En el conjunto de expansión, puede especificar un grupo de sustituciones que sean sinónimas.

    Por ejemplo, puede modificar la sección de expansión para tratar las sustituciones de "escritor", "autor" y "periodista" como sinónimos. Las consultas de búsqueda de texto completo que contienen coincidencias en una sustitución se expanden para incluir todas las demás sustituciones especificadas en el conjunto de expansión. Por tanto, en el ejemplo anterior, al emitir una consulta FORMS OF THESAURUS o FREETEXT para la palabra "autor", la búsqueda de texto completo también devuelve resultados que contienen las palabras "escritor" y "periodista".

    Esta es la apariencia que tendrá la sección del conjunto de expansión en el caso del ejemplo anterior:

     <expansion>
             <sub>writer</sub>
             <sub>author</sub>
             <sub>journalist</sub>
     </expansion>
    
  • Estructura XML de un conjunto de reemplazo

    Cada conjunto de reemplazo está delimitado por un elemento <replacement>. Dentro de este elemento, se pueden especificar uno o varios modelos en un elemento <pat>, y cero o más sustituciones en elementos <sub>, una por cada sinónimo. Puede especificar un patrón para que sea reemplazado por un conjunto de sustitución. Los patrones y las sustituciones pueden contener una palabra o una secuencia de palabras. Si no se especifica ninguna sustitución para un modelo, se quita el modelo de la consulta del usuario.

    Por ejemplo, imagine que desea que las consultas de "W2K", el patrón, sean reemplazadas por "Windows 2000" o "XP", las sustituciones. Si ejecuta una búsqueda de texto completo de "W2K", solo devolverá los resultados que contengan "Windows 2000" o "XP". No devolverá resultados que contengan "W2K". Esto se debe a que el patrón "W2K" ha sido "reemplazado" por los patrones "Windows 2000" y "XP".

    Éste es el aspecto que tendrá la sección del conjunto de reemplazo en el caso del ejemplo anterior:

     <replacement>
             <pat>W2K</pat>
             <sub>Windows 2000</sub>
             <sub>XP</sub>
     </replacement>
    

    Si tiene dos conjuntos de reemplazo con patrones similares para los que se buscan coincidencias, prevalecerá el más largo de los dos. Por ejemplo, si ejecuta una consulta FORMS OF THESAURUS para "Comunidad en línea de Internet Explorer" y tiene los siguientes conjuntos de reemplazo, el conjunto de reemplazo "Internet Explorer" tiene prioridad sobre el conjunto de reemplazo "Internet". Por tanto, la consulta se procesará como "Comunidad en línea de IE" o "Comunidad en línea de IE 5".

    <replacement>
             <pat>Internet</pat>
             <sub>intranet</sub>
    </replacement>
    

    y

    <replacement>
             <pat>Internet Explorer</pat>
             <sub>IE</sub>
             <sub>IE 5</sub>
    </replacement>
    

[Principio]

Trabajar con archivos de sinónimos

Modificar un archivo de sinónimos

Cargar un archivo de sinónimos actualizado

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