IBM Books
(C) IBM Corp. 2003

DB2 Net Search Extender Verwaltung und Programmierung


Textindizes für Sichten

Wenn Sie die gespeicherte Prozedur verwenden, können Sie Textindizes für Sichten erstellen. Allerdings besteht ein gravierender Nachteil darin, dass für Sichten keine Auslöser erstellt werden können, sodass alle Änderungen in den zu Grunde liegenden Basistabellen nicht erkannt werden.

Bei Indexteilaktualisierungen muss der Benutzer dementsprechend wissen, welches Dokument hinzugefügt, aktualisiert oder gelöscht wurde, um den Textindex mit der Datenbank zu synchronisieren. Zu diesem Zweck müssen alle Änderungen der Protokolltabelle hinzugefügt werden. Dieser Prozess wird im folgenden Beispiel illustriert:

  1. Verwenden Sie zur Erstellung der Basistabelle den folgenden Befehl:
    db2 "create table sample (key INTEGER not null  PRIMARY KEY, name 
                VARCHAR(50) not null, comment VARCHAR(90))" 
    
  2. Geben Sie folgende Befehle ein, um Einträge hinzuzufügen:
    db2 "insert into sample values(1,'Claus','works in room 301')"
    db2 "insert into sample values(2,'Manja','is in the same office
                                   as Juergen')"
    db2 "insert into sample values(2,'Juergen','has the longest way to
                                   Raiko')"
    db2 "insert into sample values(3,'Raiko','is sitting in the office
                                   besides Claus ')"
    
  3. Verwenden Sie zur Erstellung der Sicht den folgenden Befehl:
    db2 "create view sampleview as select key, comment from sample"
    
  4. Verwenden Sie die folgenden Befehle zum Erstellen, Aktualisieren und Aktivieren des Textindex:
    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"
    
    Anmerkung

    Sie müssen die Cachetabelle angeben, um einen Textindex für eine Sicht erstellen zu können. Zur Erstellung der korrekten Protokolltabelle müssen Sie die Schlüsselspalten für den Index oder die Sicht angeben.

    In einer verteilten DB2-Umgebung müssen Sie für Verwaltungstabellen auf einem einzelnen Knoten explizit einen Tabellenbereich angeben und diesen Knoten explizit aufrufen.

    Um sicherzustellen, dass Sie eine Verbindung zu dem korrekten Knoten herstellen, verwenden Sie die Umgebungsvariable DB2NODE.

  5. Verwenden Sie zur Aktualisierung der Tabelle die folgenden Befehle:
    db2 "insert into sample values(4,'Bernhard','is working in the same floor
                as Manja, but not as Claus')"
    db2 "insert into sample values(5,'Guenter','shares the office with Raiko')"
    
  6. Aktualisieren Sie anschließend die Protokolltabelle. Geben Sie folgenden Befehl ein, um den Namen der Protokolltabelle abzurufen:
    db2 "select INDSCHEMA,INDNAME,LOGVIEWSCHEMA,LOGVIEWNAME
                from db2ext.textindexes"
    
    Das Layout der Protokolltabelle sieht folgendermaßen aus:
    sqltype               sqllen  sqlname.data             sqlname.length
    --------------------  ------  -----------------------  --------------
    496   INTEGER              4  OPERATION                             9
    392   TIMESTAMP           26  TIME                                  4
    497   INTEGER              4  PK01                                  4   
    
    Verwenden Sie folgende Befehle, um die Einträge der Protokolltabelle hinzuzufügen:
    db2 "insert into sample values(0,CURRENT TIMESTAMP,4)"
    db2 "insert into sample values(0,CURRENT TIMESTAMP,5)"
    
    Der erste Wert beschreibt die Operation (0 = Einfügen, 1 = Aktualisieren, 2 = Löschen). Der zweite sollte immer CURRENT TIMESTAMP lauten und der letzte Wert sollte den Schlüssel angeben, der eingefügt wurde.
  7. Verwenden Sie folgenden Befehl, um den Index erneut zu aktualisieren:
    db2text "update index indexview for text"
    

Sie können nun mit Hilfe der gespeicherten Prozedur nach den neuen Werten suchen.


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]