Notas de la versión de Sun Java System Communications Services 2005Q4

Configuración de búsquedas internacionales

Si está utilizando Communications Express o Connector para Microsoft Outlook, la realización de una búsqueda en los contactos personales o la libreta de direcciones pública de una cadena concreta es una operación específica de la configuración regional. Por ejemplo, un usuario francés que busque “Gaelle” espera obtener entradas que contengan la cadena “Gaelle” pero también todas las entradas que contengan la cadena “Gaëlle.”

Las distintas normas que indican la forma en que se presentan las entradas a un usuario basándose en la configuración regional se llaman "normas de intercalado" u "orden de intercalado". El orden de intercalado proporciona información específica del idioma y la cultura sobre cómo se deben ordenar los caracteres de un idioma concreto. Identifica elementos como la secuencia de las letras en el alfabeto, cómo comparar las letras con acentos con letras sin ellos y si hay caracteres que se pueden ignorar al comparar cadenas. El orden de intercalado también tiene en cuenta la información específica de la cultura de un idioma, como la dirección en la que se lee un idioma (de izquierda a derecha, derecha a izquierda o de arriba a abajo).

Sun Java System Directory Server admite una amplia variedad de configuraciones regionales y normas de intercalado (consulte “Identifying Supported Locales” en la Sun Java System Directory Server 5 2005Q1 Administration Reference). En función de la base de usuarios, deberá seleccionar la configuración regional más adecuada para su entorno. En los siguientes ejemplos se utilizará la configuración regional English (US) (OID = 1.3.6.1.4.1.42.2.27.9.4.34.1).

Para especificar la configuración regional que se debe utilizar al realizar una búsqueda, use la sintaxis de filtro de regla coincidente descrita en “Searching an Internationalized Directory” en la Sun Java System Directory Server 5 2005Q1 Administration Reference. Esta sintaxis permite especificar la configuración regional así como el tipo de búsqueda (igualdad, subcadena, etc.).

Por ejemplo, el siguiente filtro realizará una comparación de subcadenas (.6) en el atributo CN, utilizando las normas de intercalado de inglés (US) (1.3.6.1.4.1.42.2.27.9.4.34.1). El filtro buscará el CN para cadenas que empiecen con “Gae”.

cn:1.3.6.1.4.1.42.2.27.9.4.34.1.6:=Gae*

Actualización de los índices

Al realizar una búsqueda LDAP, la mayoría de los problemas de rendimiento se deben al hecho de que los índices no están presentes o no se han configurado adecuadamente. De forma predeterminada, Directory Server se ha configurado de forma que las búsquedas emitidas por Communications Express o por Connector para Microsoft Outlook se indexen y muestren un resultado en un intervalo de tiempo razonable. Sin embargo, Directory Server no se ha configurado para búsquedas internacionales. Por lo tanto, hay que alterar los índices existentes de forma que tengan en cuenta las normas de intercalado que se han seleccionado. Esto se describe en la sección “Managing Indexes” de la Sun Java System Directory Server 5 2005Q1 Administration Guide.

Por ejemplo, el atributo CN se indexa de forma predeterminada en el sufijo userRoot:

# ldapsearch -D "cn=Directory manager" -b 
"cn=cn,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config" 
"objectclass=*" 
cn=cn,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config 
objectClass=top objectClass=nsIndex 
cn=cn 
nsSystemIndex=false 
nsIndexType=pres 
nsIndexType=eq 
nsIndexType=sub

Para habilitar las búsquedas internacionales utilizando las normas de intercalado de inglés (US), agregue un atributo nsMatchingRule con el ODI English (US). Los clientes realizan búsquedas de subcadenas, por lo que es necesario agregar el sufijo de subcadena (“.6”) al OID :

#ldapmodify -D "cn=Directory manager"
dn: cn=cn,cn=index,cn=userRoot,cn=ldbm database, 
 cn=plugins,cn=config
changetype: modify
add: nsMatchingRule
nsMatchingRule: 1.3.6.1.4.1.42.2.27.9.4.34.1.6 

Nota –

No agregue ningún espacio, tabulación ni caracteres no visibles al comienzo o al final del valor.



Nota –

nsMatchingRule es un atributo con varios valores. Se pueden agregar distintos tipos de búsquedas para el mismo OID o distintos OID.


A continuación, se debe ejecutar la secuencia de comandos db2index.pl que se encuentra en serverroot/slapd-instance:

# perl db2index.pl -D "cn=Directory Manager" -w \ 
secret -n userRoot -t cn

Esta operación se ejecuta en línea y puede tardar cierto tiempo en realizarse. Como alternativa, se puede reiniciar el sufijo. Consulte “Reinitializing a Suffix” en la Sun Java System Directory Server 5 2005Q1 Administration Guide.

La consola también se puede utilizar para agregar el atributo nsMatchingRule (consulte la sección “Managing Indexes” en la Sun Java System Directory Server 5 2005Q1 Administration Guide).

En las siguientes secciones se muestra la lista de índices que se deben modificar. Asegúrese de que no se realice ninguna búsqueda no indexada. Esto se puede hacer mirando el archivo de registro de acceso de Directory Server (y buscando notes=U en las entradas de resultados de las búsquedas).

Configuración de un filtro de búsqueda en Communications Express

El filtro de búsqueda utilizado por Communications Express debe cambiarse para ajustarse a la sintaxis de la norma de coincidencia. Esto se obtiene habilitando los parámetros de norma de intercalado que se especifican en el archivo db_config.properties (que se encuentra en deployed-path/WEB-INF/ldappstore (para almacén personal) y deployed-path/WEB-INF/corp-dir (para el directorio corporativo).

Los parámetros son:

# Collation Rule
# Uncomment below to apply collation rule

# collation_rule=en-US

# Search Fields for which collation rule should be applied.
# The fields provided here should be disambiguator formatted fields
# e.g. entry/displayname, person/givenname etc.
# Uncomment below to supply the comma-separated fields

# search_fields=entry/displayname

Elimine el comentario de los parámetros collation_rule y search_fields para habilitar la norma de intercalado. Para especificar un conjunto de campos en la búsqueda, cambie el valor de search_fields a los valores deseados. collation_rule puede contener la etiqueta de idioma o el OID correspondiente al idioma (en el ejemplo 1.3.6.1.4.1.42.2.27.9.4.34.1) sin el sufijo que especifica el tipo de búsqueda. La instancia de contenedor web debe iniciarse tras realizar el cambio.

Los siguientes atributos deben indexarse en el servidor LDAP para la búsqueda internacional con respecto a Communications Express: