Configuración de idioma para columnas XML de ArcSDE en geodatabases en Oracle
Si desea consultar una tabla mediante el contenido de una columna XML, verifique el lexer predeterminado que se utilizará para el análisis lingüístico con índices de texto utilizando SQL*Plus; esto es particularmente importante cuando la columna contiene documentos XML con texto escrito en un idioma que no es el inglés. Si no se brinda ninguna configuración personalizada en la tabla DBTUNE de ArcSDE, los parámetros de texto de Oracle predeterminados determinan cómo se crean los índices de texto para las columnas XML de ArcSDE.
Los objetos predeterminados utilizados para índices de texto pertenecen al usuario ctxsys y se crean para la instalación de bases de datos, no para bases de datos individuales. Las propiedades están basadas en la configuración de idioma utilizada cuando se instala Oracle; consulte las secciones sobre las preferencias definidas por el sistema y los parámetros del sistema en Referencia de texto de Oracle para la versión de la base de datos que tiene a fin de obtener información sobre cómo se configuran estas propiedades.
Los parámetros de Oracle que afectan a columnas XML de ArcSDE son DEFAULT_LEXER, DEFAULT_STOPLIST, DEFAULT_STORAGE, DEFAULT_WORDLIST y DEFAULT_INDEX_MEMORY.
Por defecto, estos parámetros en general se configuran en las preferencias definidas por el sistema con el mismo nombre que pertenecen al usuario ctxsys o en un valor adecuado. Por ejemplo, DEFAULT_LEXER en general se configura para utilizar la preferencia CTXSYS.DEFAULT_LEXER. Sin embargo, alguien en la organización puede haber configurado previamente Oracle para utilizar una preferencia personalizada por defecto.
Para muchos idiomas de Europa occidental e idiomas donde no se proporciona un lexer específico de idioma, la preferencia CTXSYS.DEFAULT_LEXER utiliza en general el lexer BASIC_LEXER; la preferencia CTXSYS.DEFAULT_WORDLIST a menudo utiliza la lista de palabras BASIC_WORDLIST.
Para indexar y buscar correctamente algunos idiomas de Europa occidental, se requieren opciones de configuración de lista de palabras específicas. Si el idioma es francés, por ejemplo, asegúrese de que los atributos stemmer y fuzzy_match para la preferencia BASIC_WORDLIST se configuren en francés.
Después de verificar la configuración de texto actual en Oracle y consultar la Referencia de texto de Oracle, es posible que deba personalizar la configuración que se utilizará para indexar los documentos XML. Esto requiere la creación de preferencias adecuadas en Oracle y después la referencia de esos parámetros con el parámetro XML_IDX_INDEX_TEXT DBTUNE de ArcSDE. A continuación, utilice la palabra clave DBTUNE que contiene el parámetro XML_IDX_INDEX_TEXT personalizado al crear una columna XML. Para un servicio de metadatos ArcIMS, puede hacer referencia a un parámetro de DBTUNE en el archivo de configuración ArcXML.
Lexers personalizados
Según el idioma de los documentos XML y la configuración en el momento de la instalación de Oracle, es posible que el parámetro DEFAULT_LEXER no esté configurado para utilizar el mejor lexer de acuerdo con la situación. Una preferencia de lexer se debe establecer como corresponde para el idioma a fin de indexar correctamente los documentos XML.
Por ejemplo, si el idioma en el que trabaja es tailandés, Oracle no brinda un lexer tailandés y, como resultado, es posible que la preferencia DEFAULT_LEXER se configure para utilizar el lexer BASIC_LEXER. BASIC_LEXER indexa y busca el texto con espacio en blanco solamente, que puede no ofrecer los mejores resultados con un idioma como el tailandés. Si los documentos XML están codificados como UTF-8, puede obtener mejores resultados con el WORLD_LEXER en este caso si utiliza Oracle 10g o una versión más actualizada. Todos los documentos XML publicados en una columna XML de ArcSDE por los servicios de metadatos ArcIMS se codifican como UTF-8.
Puede resultar útil revisar los objetos de texto suministrados por el sistema antes de crear preferencias personalizadas, por ejemplo, asegurarse de que el lexer que desea utilizar esté disponible con la instalación de Oracle.
Se utiliza esta preferencia cuando se crea una columna XML al configurar la preferencia para esta en el parámetro XML_IDX_INDEX_TEXT DBTUNE. Siempre preceda el nombre de preferencia con el usuario que creó la preferencia. Cualquiera puede utilizar una preferencia de texto creada por otro usuario.
Si puede utilizar el BASIC_LEXER para indexar los documentos XML, es posible que desee crear un lexer personalizado para fusionar el texto que incluye caracteres que no son alfanuméricos en una palabra, por ejemplo. Esto se puede lograr mediante el atributo printjoins del BASIC_LEXER, y puede ser útil para estandarizar la indexación y la búsqueda de nombres de lugares que utilizan puntuación como la de Coeur d'Alene.
Al crea un lexer personalizado mediante el atributo skipjoin del BASIC_LEXER con el carácter apóstrofe, se indexa Coeur d'Alene como Coeur dAlene. Además, cualquier error de ortografía de este lugar con apóstrofes adicionales, como C'oeur d'Alene, también se indexa como Coeur dAlene, lo que puede generar mejores resultados de búsqueda. Por ejemplo, se crea una preferencia de texto como la siguiente:
begin ctx_ddl.create_preference('BASIC_LEX_SKIP', 'BASIC_LEXER'); ctx_ddl.set_attribute('BASIC_LEX_SKIP', 'skipjoins', ''''); end; /
Sea cuidadoso al cambiar la manera en que se indexa la puntuación. Se utilizará la misma preferencia al indexar todo el texto en los documentos XML. Los valores en un elemento XML pueden utilizar la puntuación de un modo diferente que en otros.
Una preferencia de lexer personalizada también puede requerirse en casos donde el DEFAULT_LEXER está correctamente configurado para utilizar el BASIC_LEXER, pero los atributos del BASIC_LEXER no son correctos para el idioma. Los atributos de BASIC_LEXER para raíces de índice, indexación de palabras compuestas, ortografía alternativa y nueva ortografía alemana se deben configurar como corresponde para el idioma a fin de indexar correctamente los documentos XML. Esto es particularmente importante para idiomas de Europa occidental. Después de verificar los valores adecuados para estos atributos para el idioma en la Referencia de texto de Oracle, cree una preferencia de lexer personalizado siguiendo el ejemplo anterior; después, haga referencia a la preferencia en el parámetro XML_IDX_INDEX_TEXT DBTUNE.
Lista de palabras o lista de palabras irrelevantes personalizada
Según el idioma de los documentos XML y la configuración en el momento de la instalación de Oracle, es posible que las preferencias DEFAULT_WORDLIST y DEFAULT_STOPLIST no tengan la configuración correcta para el idioma.
La preferencia de lista de palabras se debe configurar como corresponde para el idioma a fin de buscar correctamente documentos XML. Esto es particularmente importante para idiomas de Europa occidental, donde la preferencia BASIC_WORDLIST debe tener el idioma adecuado configurado para la coincidencia difusa o de raíz.
La preferencia de lista de palabras irrelevantes controla qué palabras en los documentos XML no se indexan y, por lo tanto, no están disponibles para la búsqueda. Las listas de palabras irrelevantes están disponibles para varios idiomas. También puede personalizar las listas de palabras irrelevantes si es apropiado para la situación.
Después de verificar los valores adecuados para estas opciones de configuración para el idioma en la Referencia de texto de Oracle, cree una preferencia personalizada y agréguela al valor del parámetro XML_IDX_INDEX_TEXT DBTUNE.