Associateurs

Les associateurs sont des classes qui définissent la manière dont les données du service de recherche sont mappées des tables de la base de données d'application aux tables de la base de données de transfert. Chaque service de recherche dispose de son propre associateur (l'associateur à utiliser est spécifié dans la table de base de données du service de recherche). Pour plus de détails, voir mapperName.

Deux processus utilise cette fonctionnalité d'associateur :

  1. Lorsque l'extracteur de base de données est en cours d'exécution, chaque zone du service de recherche est itérée pour un service de recherche particulier. Pour chaque zone, les données d'attribut d'entité correspondantes sont récupérées dans la base de données d'application, puis utilisées pour remplir la table de base de données de transfert SearchServiceRow.
  2. Lorsqu'une opération de création, de mise à jour ou de suppression est appelée pour une entité utilisée dans un service de recherche, les lignes SearchServiceRow concernées sont mises à jour avec les modifications d'entité associées.

Dans ces deux processus, l'associateur approprié pour chaque service de recherche est appelé pour mapper des données à partir des tables de base de données d'application aux tables de base de données de transfert.

Lors de l'initialisation de Generic Search Server, les informations de la base de données de transfert sont lues et utilisées pour générer les index à partir des métadonnées du service de recherche. Le serveur de recherche vérifie périodiquement s'il existe des mises à jour pour la base de données de transfert, et il maintient les données du service à jour.

Les méthodes suivantes de l'interface de programme d'application de l'associateur nécessitent d'être implémentées par les développeurs de recherche sur chaque service de recherche :

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);

Pour plus de détails, voir Implémentation d'opérations de l'associateur