Correlacionadores

Los correlacionadores son clases que definen cómo se correlacionan los datos del servicio de búsqueda de las tablas de la base de datos de aplicaciones a las tablas de la base de datos de transferencia. Cada servicio de búsqueda tiene su propio correlacionador; el correlacionador que se debe utilizar se especifica en la tabla de base de datos SearchService. Para ver más detalles, consulte mapperName.

Esta funcionalidad del correlacionador se utiliza en dos procesos:

  1. Cuando se ejecuta el extractor de la base de datos, cada campo del servicio de búsqueda se repite sobre un servicio de búsqueda determinado. Para cada campo, los datos del atributo de entidad correspondientes se recuperan de la base de datos de la aplicación y se llenan en la tabla de la base de datos de transferencia SearchServiceRow
  2. Cuando se llama a una operación de creación, actualización o eliminación para una entidad que se utiliza en un servicio de búsqueda, las filas SearchServiceRow relevantes se actualizan con las modificaciones de la entidad relacionada

En ambos procesos, el correlacionador relevante se invoca para cada servicio de búsqueda para correlacionar datos de las tablas de base de datos de la aplicación con las tablas de la base de datos de transferencia.

Al inicializarse el Servidor de búsqueda genérico, la información de la base de datos de transferencia se lee y se utiliza para construir los índices a partir de los metadatos del servicio de búsqueda. El Servidor de búsqueda comprobará periódicamente la base de datos de transición para ver si hay actualizaciones y mantener los datos de servicio actualizados.

Los siguientes métodos de la API de correlacionador deben ser implementados por los desarrolladores de búsquedas para cada servicio de búsqueda:

SearchServiceRowDtlsList mapToStagingDb(
  final SearchServiceKey id) throws AppException, 
    InformationalException;
    
List getObjectList(final SearchServiceKey serviceId, 
  final Object obj) throws AppException, InformationalException;
  
String getExtKey(final SearchServiceKey serviceId, List objList);

void remove(final SearchServiceKey serviceId, final Object objKey) 
    throws AppException, InformationalException;    
    
Object getFieldValue(final SearchServiceKey serviceId, 
    final List objList, final SearchServiceFieldDtls field);

Consulte Implementación de operaciones del correlacionador si desea obtener información detallada