IBM Books
(C) IBM Corp. 2000

DB2 Extension Net Search - Guide d'administration et d'utilisation


Index de texte sur des vues

Lors de l'utilisation de la procédure mémorisée, vous pouvez créer des index de texte sur des vues. Cependant, un inconvénient majeur réside dans le fait que vous ne pouvez pas créer de déclencheurs sur des vues, aussi les modifications des tables de base sous-jacentes ne sont pas reconnues.

Ainsi, avec les mises à jour incrémentielles d'index, l'utilisateur doit savoir quel document a été ajouté, mis à jour ou supprimé afin de synchroniser l'index de texte avec la base de données. Pour ce faire, vous devez ajouter toutes les modifications à la table de journalisation. Ce processus est illustré dans le modèle suivant :

  1. Pour créer la table de base, utilisez la commande suivante :
    db2 "create table sample (key INTEGER not null  PRIMARY KEY, name 
                VARCHAR(50) not null, comment VARCHAR(90))" 
    
  2. Pour ajouter des entrées, utilisez les commandes suivantes :
    db2 "insert into sample values(1,'Claus','travaille dans le bureau 301')"
    db2 "insert into sample values(2,'Manja','se trouve dans le même bureau
                                   que Juergen')"
    db2 "insert into sample values(2,'Juergen','est le plus loin de 
                                   Raiko')"
    db2 "insert into sample values(3,'Raiko','est assis dans le bureau 
                                   à côté de Claus ')"
    
  3. Pour créer la vue, utilisez la commande suivante :
    db2 "create view sampleview as select key, comment from sample"
    
  4. Utilisez les commandes suivantes pour créer, mettre à jour et activer l'index de texte :
    db2text "create index indexview for text on hde.sampleview(comment) 
                cache table (comment) maximum cache size 1 key columns 
                for index on view (key)" 
    db2text "update index indexview for text"
    db2text "activate cache for index indexview for text"
    
    Remarque

    Vous devez spécifier la table de la mémoire cache pour pouvoir créer un index de texte sur une vue. Pour créer la table de journalisation correcte, vous devez spécifier les colonnes clés pour l'index sur une vue.

    Dans un environnement DB2 réparti, vous devez spécifier un espace table pour les tables d'administration sur un seul noeud ou appeler sur ce noeud de manière explicite.

    Pour être sûr que vous vous connectez au bon noeud, utilisez la variable d'environnement DB2NODE.

  5. Pour mettre à jour la table, utilisez les commandes suivantes :
    db2 "insert into sample values(4,'Bernhard','travaille au même étage 
                que Manja, mais pas que Claus')"
    db2 "insert into sample values(5,'Guenter','partage le même bureau que Raiko')"
    
  6. Puis, mettez à jour la table de journalisation. Pour obtenir le nom de la table de journalisation, utilisez la commande suivante :
    db2 "select INDSCHEMA,INDNAME,LOGVIEWSCHEMA,LOGVIEWNAME 
                from db2ext.textindexes"
    
    La table de journalisation se présente comme suit :
    sqltype               sqllen  sqlname.data             sqlname.length
    --------------------  ------  -----------------------  --------------
    496   INTEGER              4  OPERATION                             9
    392   TIMESTAMP           26  TIME                                  4
    497   INTEGER              4  PK01                                  4   
    
    Pour ajouter les entrées à la table de journalisation, utilisez les commandes suivantes :
    db2 "insert into sample values(0,CURRENT TIMESTAMP,4)"
    db2 "insert into sample values(0,CURRENT TIMESTAMP,5)"
    
    La première valeur décrit l'opération (0 = insertion, 1 = mise à jour, 2 = suppression). La seconde doit toujours être CURRENT TIMESTAMP (horodatage en cours) et la dernière, la clé qui a été insérée.
  7. Utilisez la commande suivante pour mettre de nouveau à jour l'index :
    db2text "update index indexview for text"
    

Vous pouvez désormais utiliser la procédure mémorisée pour rechercher dans les nouvelles valeurs.


[ Début de page | Page précédente | Page suivante | Table des matières | Index ]