IBM Books
(C) IBM Corp. 2003

DB2 Net Search Extender Verwaltung und Programmierung

CREATE INDEX

Dieser Befehl erstellt einen Volltextindex für eine Textspalte zur Verwendung durch DB2 Net Search Extender-Volltextabfragen.

In einer verteilten DB2-Umgebung wird ein Volltextindex in jeder Partition des Tabellenbereichs erstellt, in dem die Benutzertabelle definiert ist. Nachfolgende Änderungen an der Verteilung des Tabellenbereichs sind nicht zulässig und führen zu unvorhergesehenen Funktionsweisen der Verwaltungsbefehle sowie bei Suchoperationen.

Berechtigung

Gemäß den DB2-Katalogsichten muss die Benutzer-ID in diesem Befehl das Zugriffsrecht CONTROL für die Tabelle besitzen, für die der Volltextindex erstellt wurde.

Befehlssyntax

>>-CREATE-INDEX--+-----------------+--indexname FOR TEXT--ON---->
                 '-indexschema-"."-'
 
>--+--------------------+--tabellenname------------------------->
   '-tabellenschema-"."-'
 
>--+-(textspaltenname)--------------------------------------------+-->
   '-+-----------------------+--funktionsname-(-textspaltenname-)-'
     '-|funktionsschema "."|-'
 
>--+-----------------+--+-----------------------------+--------->
   '-|attributliste|-'  '-|textstandardinformationen|-'
 
>--+---------------------------+--+--------------------+-------->
   '-|aktualisierungsmerkmale|-'  '-|speicheroptionen|-'
 
>--+----------------------------------+------------------------->
   '-|optionen-für-suchergebniscache|-'
 
>--+-------------------------------+---------------------------->
   '-|indexkonfigurationsoptionen|-'
 
>--+-----------------------+-----------------------------------><
   '-|verbindungsoptionen|-'
 
attributliste:
 
                  .-','--------------------------------------.
                  V                                          |
|--ATTRIBUTES--(----SQL-spaltenausdruck--+-----------------+-+--)--|
                                         '-AS-attributname-'
 
textstandardinformationen:
 
|--+--------------+--+-------------------+---------------------->
   '-CCSID--ccsid-'  '-LANGUAGE--sprache-'
 
>--+-------------------------------------------+----------------|
   '-FORMAT--format--+-----------------------+-'
                     '-|modellinformationen|-'
 
modellinformationen:
 
|--DOCUMENTMODEL--dokumentmodellname--IN--modelldateipfad------->
 
>--+--------------------+---------------------------------------|
   '-USING-CCSID--ccsid-'
 
aktualisierungsmerkmale:
 
|--+---------------------------------------------------+-------->
   '-UPDATE-FREQUENCY--+-NONE------------------------+-'
                       '-|aktualisierungshäufigkeit|-'
 
>--+-|merkmale-für-teilaktualisierung|-+------------------------|
   '-RECREATE INDEX ON UPDATE----------'
 
merkmale-für-teilaktualisierung:
 
|--+----------------------------------------+------------------->
   '-UPDATE-MINIMUM--mindestzahl-änderungen-'
 
>--+---------------------------+-------------------------------->
   '-REORGANIZE--+-AUTOMATIC-+-'
                 '-MANUAL----'
 
>--+----------------------------------+-------------------------|
   +-COMMITCOUNT-FOR-UPDATE--anzahl---+
   '-|merkmale-für-erfassungstabelle|-'
 
merkmale-für-erfassungstabelle:
 
|--REPLICATION-CAPTURE-TABLE------------------------------------>
 
>--+------------------------------+--erfassungstabellenname----->
   '-erfassungstabellenschema-"."-'
 
>--CONTROL TABLE SCHEMA--erfassungssteuerungsschema-------------|
 
aktualisierungshäufigkeit:
 
|--D--(--+-*---------+--)--H--(--+-*----------+--)--M----------->
         | .-,-----. |           | .-,------. |
         | V       | |           | V        | |
         '---0...6-+-'           '---0...23-+-'
 
      .-,------.
      V        |
>--(----0...59-+--)---------------------------------------------|
 
speicheroptionen:
 
|--+------------------------------+----------------------------->
   '-INDEX-DIRECTORY--verzeichnis-'
 
>--+------------------------------------+----------------------->
   '-WORK-DIRECTORY--arbeitsverzeichnis-'
 
>--+------------------------------------------------+-----------|
   '-ADMINISTRATION-TABLES-IN--tabellenbereichsname-'
 
optionen-für-suchergebniscache:
 
|--CACHE TABLE-------------------------------------------------->
 
      .-','---------------------------------------.
      V                                           |
>--(----SQL-spaltenausdruck--+------------------+-+--)---------->
                             '-AS--attributname-'
 
>--+---------------------------------+-------------------------->
   +-PERSISTENT--+-----------------+-+
   |             '-IN--verzeichnis-' |
   '-TEMPORARY-----------------------'
 
>--+----------------------+------------------------------------->
   '-PCTFREE--prozentsatz-'
 
>--MAXIMUM CACHE SIZE--speichergröße---------------------------->
 
>--+-------------------------------------------------------------+-->
   '-INITIAL SEARCH RESULT ORDER--(--SQL-sortieren-nach-liste--)-'
 
>--+---------------------------------------------------------+--|
   '-KEY COLUMNS FOR INDEX ON VIEW--(SQL-spaltennamensliste)-'
 
indexkonfigurationsoptionen:
 
                           .-,-----------.
                           V             |
|--INDEX CONFIGURATION--(----optionswert-+--)-------------------|
 
verbindungsoptionen:
 
|--CONNECT-TO--datenbankname--+------------------------------------+--|
                              '-USER--benutzer-id--USING--kennwort-'
 
 

Befehlsparameter

indexschema
Das Schema des Textindexes. Verwenden Sie dieses Schema als DB2-Schemanamen für die indexspezifischen Verwaltungstabellen. Wenn kein Schema angegeben wurde, wird die Benutzer-ID der DB2-Verbindung verwendet. Beachten Sie, dass das Indexschema ein gültiger DB2-Schemaname sein muss.

indexname
Der Name des Index. Zusammen mit dem Schemanamen dient dieser Name zur eindeutigen Identifizierung eines Volltextindexes in einer Datenbank. Darüber hinaus dient er als Name für die Indexereignistabelle.

Einzelheiten finden Sie in Anhang C, Net Search Extender-Informationskataloge. Beachten Sie, dass der Indexname ein gültiger DB2-Indexname sein muss.

tabellenschema
Das Schema der Tabelle, des Kurznamens oder der Sicht, für die der Index erstellt wird. Wenn kein Schema angegeben wurde, wird die Benutzer-ID der DB2-Verbindung verwendet.

tabellenname
Der Name der Texttabelle, des Kurznamens oder der Sicht in der verbundenen Datenbank, die die Spalte enthält, für die der Index erstellt werden soll.

Beachten Sie, dass die folgenden Einschränkungen zu berücksichtigen sind, wenn der Tabellenname keine DB2-Basistabelle bezeichnet:

textspaltenname
Der Name der Spalte, die den Text enthält, der zur Erstellung des Volltextindexes verwendet wird. Die Spalte muss einen der folgenden Datentypen aufweisen:

Wenn die Spalte keinen dieser Datentypen aufweist, geben Sie eine Umsetzungsfunktion der Form funktionsschema.funktionsname an, um den Datentyp umzuwandeln.

Beachten Sie, dass bei Verwendung einer DataLink-Spalte der Inhalt, auf den verwiesen wird, für die Indexierung abgerufen wird. Dazu wird das Protokoll verwendet, das im DataLink-Wert angegeben ist, z. B. Http. Wenn Sie andere Protokolle als "file" oder "unc" verwenden, müssen Sie sicherstellen, das diese von den Servern unterstützt werden, die in den DataLink-Werten angegeben sind. Da eventuell Proxy-Server zum Abrufen des Dateiinhalts erforderlich sind, kann der Datenbankadministrator diese Server vor der Indexerstellung in der Tabelle DB2EXT.PROXYINFORMATION angeben.

Beachten Sie, dass für Spalten mehrere Indizes zulässig sind, jedoch nur, wenn die folgenden Bedingungen erfüllt sind:

Der Index wird für eine Sicht erstellt.
Dies bedeutet, der Index kann nicht in Suchargumenten mit CONTAINS, SCORE oder NUMBEROFMATCHES verwendet werden.

Der Index wird für eine Tabelle erstellt.
Wenn alle Indizes synchronisiert sind, stimmen die Merkmale für eine Spalte, die in den folgenden Details des Befehls CREATE INDEX festgelegt werden, bei allen Indizes überein:
  • Name und Schema der Funktion
  • ATTRIBUTES
  • CCSID
  • LANGUAGE
  • FORMAT
  • DOCUMENTMODEL
  • INDEX CONFIGURATION

Daher spielt es in diesem Fall keine Rolle, welcher Index mit dem Argument CONTAINS , SCORE oder NUMBEROFMATCHES ausgewählt wird.

funktionsschema.funktionsname
Das Schema und der Name einer benutzerdefinierten Funktion, die für den Zugriff auf Textdokumente verwendet wird, die sich in einer Spalte mit einem nicht unterstützten Typ befinden. Die Funktion wandelt den Spaltentyp um, und zwar unter Verwendung eines willkürlichen Spaltentyps als einzigem Eingabeparameter. Der Rückgabewert ist einer der von Net Search Extender unterstützten Typen.

ATTRIBUTES (SQL-spaltenausdruck AS attributname, ...)
Stellt sicher, dass zusätzlich zur Textspalte auch der Inhalt eines Spaltenausdrucks indexiert wird. Dieser Inhalt kann auch mit der Klausel ATTRIBUTE in einer Suchanweisung gesucht werden. Die SQL-Spaltenausdrücke müssen mit Hilfe von Spaltennamen ohne Qualifikationsmerkmal aus der Tabelle definiert werden, auf deren Grundlage der Index erstellt wird. Es ist nur der Datentyp DOUBLE zulässig. In den Spaltenausdrücken können Umsetzungsoperatoren (CAST) verwendet werden, eine implizite Typumsetzung von DB2 ist jedoch nicht möglich. Die Attributnamen müssen den Regeln für Attributnamen in Dokumentmodellen entsprechen und sich von Attributnamen in der Modelldefinitionsdatei für Indizes unterscheiden.

Ermitteln Sie die Attributnamen für Ausdrücke anhand der folgenden Regeln:

Beispiel: ATTRIBUTES (CAST(JULIAN_DAY(date) AS DOUBLE) as day, (price1+price2)/2 as avg_price)

Beachten Sie, dass Attribute ohne Anführungszeichen in Großbuchstaben umgesetzt werden und in dieser Form bei der Suche angegeben werden müssen.

CCSID ccsid
Die ID für den codierten Zeichensatz (CCSID = Coded Character Set Identifier) wird beim Indexieren von Textdokumenten verwendet. Der Standardwert wird der Sicht DB2EXT.DBDEFAULTS mit dem Argument DEFAULTNAME='CCSID' entnommen.

LANGUAGE sprache
Eine Liste der Sprachen finden Sie in Anhang E, Unterstützte Sprachen. Der Standardwert wird der Sicht DB2EXT.DBDEFAULTS mit dem Argument DEFAULTNAME='LANGUAGE' entnommen.

FORMAT format
Das Format der Textdokumente in der Spalte, zum Beispiel HTML. Diese Information wird bei der Indexierung von Dokumenten benötigt. Eine Liste der Dokumentformate, die für strukturierte Dokumente unterstützt werden, finden Sie unter Dokumentformate und unterstützte Codepages.

Informationen für Formate strukturierter Dateien können Sie in einer Dokumentmodelldatei angeben. Wenn keine Dokumentmodelldatei angegeben ist, wird der Text des Dokuments mit Hilfe eines Standarddokumentmodells indexiert. Siehe Dokumentmodelle.

Wenn das Schlüsselwort FORMAT nicht angegeben wird, wird der Standardwert der Sicht DB2EXT.DBDEFAULTS mit dem Argument DEFAULTNAME='FORMAT' entnommen.

DOCUMENTMODEL dokumentmodellname IN modelldateipfad
Der Modelldateipfad gibt die Position einer Modelldatei an. Diese Datei enthält eine Modelldefinition für das Format in der Klausel FORMAT. Der DB2-Exemplareigner muss Lesezugriff auf sie haben. Mit einem Dokumentmodell können Sie bestimmte Abschnitte in einem Dokument indexieren und durchsuchen. Außerdem können Sie in einem Dokumentmodell Formatierungssteuerbefehle (Tags) und Abschnittsnamen definieren. Ein Dokumentmodell ist an ein Dokumentformat gebunden, das HTML-, XML- oder GPP-Strukturen unterstützt. In einer Modelldatei können Sie nur ein Dokumentmodell angeben.

Da in Suchbedingungen nicht auf Dokumentmodelle verwiesen werden muss, verwenden Sie stattdessen alle Abschnittsnamen in der Modelldatei. Einzelheiten zu Dokumentmodellen finden Sie in Kapitel 9, Arbeiten mit strukturierten Dokumenten. Beachten Sie, dass das Dokumentmodell nur bei der Ausführung des Befehls CREATE INDEX gelesen wird. Alle späteren Änderungen werden im Index nicht berücksichtigt.

Beachten Sie, dass in einer verteilten DB2-Umgebung der modelldateipfad für alle Knoten zugänglich sein muss. Daher ist ein gemeinsames Dateisystem zu verwenden.

USING CCSID ccsid
Dient zur Angabe der ID des codierten Zeichensatzes (CCSID), der zur Interpretation des Inhalts der Modelldatei verwendet wird. Der Standardwert wird der Sicht DB2EXT.DBDEFAULTS mit dem Argument DEFAULTNAME='MODELCCSID' entnommen.

UPDATE FREQUENCY
Die Häufigkeit der Indexaktualisierung legt fest, wann die Aktualisierung durchgeführt wird. Wenn weniger Änderungen an der Benutzertabelle durchgeführt wurden, als mit der Option UPDATE MINIMUM vorgegeben, wird der Index nicht aktualisiert. Wenn Sie das Schlüsselwort UPDATE FREQUENCY nicht angeben, wird der Standardwert NONE verwendet, so dass keine weiteren Indexaktualisierungen durchgeführt werden. Dies ist nützlich, wenn keine weiteren Änderungen an einer Textspalte mehr vorgenommen werden.

Der Standardwert wird der Sicht DB2EXT.DBDEFAULTS mit dem Argument DEFAULTNAME='UPDATEFREQUENCY' entnommen.

UPDATE MINIMUM mindestzahl-änderungen
Die Mindestanzahl von Änderungen, die an Textdokumenten zulässig sind, bevor der Index automatisch durch UPDATE FREQUENCY aktualisiert wird. Es sind positive ganzzahlige Werte (INTEGER) zulässig. Der Standardwert wird der Sicht DB2EXT.DBDEFAULTS mit dem Argument DEFAULTNAME='UPDATEMINIMUM' entnommen.

Beachten Sie, dass dieser Wert in einem Befehl DB2TEXT UPDATE ignoriert wird. Diese Option kann nicht mit der Option RECREATE INDEX ON UPDATE verwendet werden, da die Anzahl von Änderungen nicht ohne eine Protokolldatei und Auslöser für die Teilaktualisierung (inkrementelle Aktualisierung) verfügbar ist.

Bei verteilten Datenbanken wird der Wert für UPDATE MINIMUM auf jedem Knoten geprüft.

REORGANIZE AUTOMATIC/MANUAL
Aktualisierungen, die unter Angabe des Aktualisierungsmerkmals UPDATE FREQUENCY ausgeführt werden, erkennen den Index nur, wenn REORGANIZE AUTOMATIC angegeben wird. Dieser Schritt wird automatisch gemäß dem Wert durchgeführt, der mit select REORGSUGGESTED from DB2EXT.TEXTINDEXES nach der Aktualisierung abgerufen wird.

REORGANIZE MANUAL kann nur über einen manuellen UPDATE-Befehl mit der Option REORGANIZE ausgeführt werden.

Wenn die Klausel REORGANIZE nicht angegeben wird, wird der Standardwert der Sicht DB2EXT.DBDEFAULTS mit dem Argument DEFAULTNAME='AUTOMATICREORG' entnommen.

Weitere Informationen zur Option REORGANIZE finden Sie in UPDATE INDEX.

REPLICATION CAPTURE TABLE erfassungstabellenschema.erfassungstabellenname CONTROL TABLE SCHEMA erfassungstabellenschema
Bei der Verarbeitung von Teilaktualisierungen wird die angegebene Replikationserfassungstabelle verwendet und nicht die Protokolltabelle, die normalerweise für den Index erstellt wird. Aus diesem Grund beziehen sich der Schemaname, der Tabellenname und der Name der Replikationserfassungstabelle auf Objekte in der lokalen (zusammengeschlossenen) DB2-Datenbank.

Das Erfassungssteuerungsschema ist der Schemaname der Replikationssteuertabellen im lokalen DB-System, z. B. IBMSNAP_PRUNE_SET. Die Replikationssteuertabellen müssen nach der Einrichtung der Replikation im lokalen DB2-System vorhanden sein.

Es müssen mindestens Kurznamen für die folgenden Erfassungssteuertabellen vorhanden sein:

Da die DB2 Replikationszentrale nicht automatisch sicherstellt, dass lokale Kurznamen für eine ferne Erfassungstabelle und für die Replikationssteuertabellen erstellt werden, muss diese Aufgabe auf ähnliche Weise manuell ausgeführt werden wie die Erstellung eines Kurznamens für die Tabelle, auf deren Grundlage der Textindex erstellt werden soll.

Die Spaltennamen der Primärschlüsselspalten im Kurznamen der Benutzertabelle und im Kurznamen der Erfassungstabelle müssen übereinstimmen. Außerdem dürfen die Namen der Spalten IBMSNAP_OPERATION, IBMSNAP_COMMITSEQ und IBMSNAP_INTENTSEQ im Kurznamen der Erfassungstabelle nicht geändert werden.

Nach der Indexerstellung verweist sowohl der Spaltenname DB2EXT.TEXTINDEXES(LOGVIEWNAME) als auch der Spaltenname DB2EXT.TEXTINDEXES(LOGVIEWSCHEMA) auf den lokalen Namen der Replikationserfassungstabelle.

Da Net Search Extender nicht die gesamte Funktionalität der DB2 Replikationszentrale benötigt, muss die CD-Tabelle (CD = Change Data) bzw. die CCD-Tabelle (CCD = Consistent Change Data) die folgenden Regeln erfüllen:

Außerdem müssen folgende Voraussetzungen erfüllt sein:

Anmerkungen und Einschränkungen

Stellen Sie sicher, dass der korrekte Quellentabellenname in die Registrierungstabelle eingefügt wird. Abhängig vom Typ des fernen Datenbankverwaltungssystems (DBMS) muss der ferne Tabellenname oder der lokale Kurzname verwendet werden:

  • DB2: ferner Tabellenname (d. h. der Tabellenname auf dem fernen Server)
  • Andere Datenbanksysteme: lokaler Kurzname (d. h. der entsprechende Kurzname in der zusammengeschlossenen DB2-Datenbank)

Es ist eine Benutzerzuordnung erforderlich, die dem lokalen Benutzer den Zugriff auf die ferne Datenquelle mit Hilfe von Kurznamen ermöglicht. Der ferne Benutzer muss das Zugriffsrecht CONTROL für die Tabellen besitzen.

Wenn die Benutzer-ID des DB2-Exemplareigners von der lokalen Benutzer-ID abweicht, ist eine zusätzliche Benutzerzuordnung für die Benutzer-ID des DB2-Exemplareigners erforderlich.

Der angegebene Basistabellenname darf keine Sicht auf einen Kurznamen sein. Eine Sicht kann nämlich eine Sicht auf mehrere Kurznamen sein und außerdem können mehrere CD- und CCD-Tabellen beteiligt sein. Da in der Replikationserfassungsklausel nur eine CD- oder CCD-Tabelle angegeben werden kann, kann eine Sicht auf Kurznamen nicht unterstützt werden. Auch können Kurznamen in fernen Sichten nicht unterstützt werden, da der Primärschlüssel fehlt.

Die CD- bzw. CCD-Tabelle muss als Kurzname definiert sein. Die Verwendung einer Sicht oder eines Aliasnamens ist hingegen nicht zulässig.

Weitere Informationen zum DB2 Replikation Referenzhandbuch Version 8 finden Sie in Zugehörige Informationen.

COMMITCOUNT FOR UPDATE anzahl
Für die Teilaktualisierung kann eine Zahl von COMMIT-Operationen angegeben werden. Weitere Informationen finden Sie in UPDATE INDEX. Falls diese Option nicht angegeben wird, wird der Standardwert der Sicht DB2EXT.DBDEFAULTS mit dem Argument DEFAULTNAME='COMMITCOUNT' entnommen.

Der Wert für COMMITCOUNT FOR UPDATE für den Index ist in DB2EXT.TEXTINDEXES.COMMITCOUNT zu finden. Dieser Wert kann für jeden Index mit Hilfe des Befehls ALTER INDEX geändert werden. Er gilt auch für die Aktualisierungsverarbeitung, die mit Hilfe der Angabe UPDATE FREQUENCY festgelegt wird. Der Wert 0 bedeutet, dass die Aktualisierung in einer Transaktion abgeschlossen wird. Werte >0 geben die Anzahl von Dokumenten an, die in einer Transaktion zu verarbeiten sind.

Die Verwendung von commitcount hat Auswirkungen auf die Systemleistung. Weitere Informationen hierzu finden Sie im Abschnitt Leistungsaspekte.

RECREATE INDEX ON UPDATE
Diese Option lässt keine inkrementellen Aktualisierungen (Teilaktualisierungen) von Indizes zu, sondern erstellt den Index erneut, wenn eine Aktualisierung (durch einen UPDATE-Befehl oder durch eine regelmäßige Aktualisierung) ausgeführt wird. Weitere Informationen finden Sie in den Verwendungshinweisen zum Befehl UPDATE INDEX.
Anmerkung

Es werden keine Auslöser für die Benutzertabelle und keine Protokolltabelle erstellt.

INDEX DIRECTORY verzeichnis
Der Verzeichnispfad, in dem der Textindex gespeichert werden soll. Da das Verzeichnis Indexdaten enthalten wird, müssen Sie sicherstellen, dass der Benutzer-ID des DB2-Exemplareigners die Zugriffsrechte Lesen, Schreiben und Ausführen für das Verzeichnis erteilt werden.

Der Standardwert wird der Sicht DB2EXT.DBDEFAULTS mit dem Argument DEFAULTNAME='INDEXDIRECTORY' entnommen. In dem Verzeichnis wird ein Unterverzeichnis namens NODE<nr> erstellt, um Indizes auf logischen Knoten eines Servers zu unterscheiden.

Beachten Sie, dass dieses Verzeichnis in einer verteilten DB2-Umgebung auf jedem physischen Knoten vorhanden sein muss.

WORK DIRECTORY verzeichnis
Sie können optional ein separates Arbeitsverzeichnis angeben, das zur Speicherung temporärer Dateien bei Indexsuch- und Verwaltungsoperationen verwendet wird. Das Verzeichnis muss vorhanden sein, und der Benutzer-ID des DB2-Exemplareigners muss die Lese-, Schreib- und Ausführungsberechtigung zugeordnet sein.

Der Standardwert wird der Sicht DB2EXT.DBDEFAULTS mit dem Argument DEFAULTNAME='WORKDIRECTORY' entnommen. In dem Verzeichnis wird ein Unterverzeichnis namens NODE<nr> erstellt, um Indizes auf logischen Knoten eines Servers zu unterscheiden.

Beachten Sie, dass dieses Verzeichnis in einer verteilten DB2-Umgebung auf jedem physischen Knoten vorhanden sein muss.

ADMINISTRATION TABLES IN tabellenbereichsname
Der Name des regulären Tabellenbereichs für Verwaltungstabellen, die für den Index erstellt werden. Der Tabellenbereich muss vorhanden sein. Wenn er nicht angegeben wird, wird der Tabellenbereich der Benutzertabelle gewählt, wenn der Index für eine Basistabelle erstellt wird.

Im Fall eines Kurznamens oder einer Sicht wird ein Standardtabellenbereich durch DB2 gewählt.

Wenn Textindizes auf der Grundlage von Sichten, Kurznamen oder Textindizes für die Suche über eine gespeicherte Prozedur in einer verteilten DB2-Umgebung erstellt werden, muss sich der gesamte Tabellenbereich auf nur einem Knoten befinden.

CACHE TABLE (SQL-spaltenausdrucksliste)
Eine im Cache gespeicherte Tabelle, die aus den angegebenen Spaltenausdrücken besteht, wird zusätzlich zum Index erstellt. Dieser Cache dient zur Rückgabe der Ergebnismenge einer Suche, die über eine gespeicherte Prozedur ausgeführt wird, ohne die Ergebnisse der Volltextsuche mit einer DB2-Tabelle zu verknüpfen. Beachten Sie, dass eine reguläre DB2-Suche unter Verwendung des Volltextindexes mit der Funktion CONTAINS immer möglich ist.

Definieren Sie die SQL-Spaltenausdrücke mit Spaltennamen ohne Qualifikationsmerkmal der Tabelle, für die der Index erstellt wird. Die zulässigen SQL-Spaltenausdruckstypen sind integrierte und benutzerdefinierte einzigartige Datentypen. Die Spaltennamen in der Ergebnismenge werden durch folgende Regeln bestimmt:

Der Datentyp CLOB wird nicht als Cachedatentyp unterstützt. Diesen Datentyp müssen Sie in den Datentyp VARCHAR umsetzen.

Anmerkung

Beachten Sie, dass der Befehl CREATE INDEX einen Fehler liefert, wenn die Spaltennamen in der Ergebnismenge nicht disjunkt sind. Beachten Sie außerdem, dass die im Cache gespeicherte Tabelle nach der Erstellung nicht implizit aktiviert wird. Zum Beispiel ist eine Suche über eine gespeicherte Prozedur nicht möglich, bevor der Befehl DB2TEXT ACTIVATE CACHE ausgeführt wird.

Diese Option kann in einer verteilten DB2-Umgebung nur dann verwendet werden, wenn die Benutzertabelle in einem Tabellenbereich gespeichert wird, der sich komplett auf einem Knoten befindet.

PERSISTENT IN verzeichnis
Gibt an, dass der Cache außerdem persistent erstellt wird und kurz nach einer Inaktivierung oder einem Systemneustart aktiviert werden könnte. Der persistente Cache wird im angegebenen Verzeichnis gespeichert.

Beachten Sie, dass bei keiner Angabe des Verzeichnisses der Standardwert der Sicht DB2EXT.DBDEFAULTS mit dem Argument DEFAULTNAME='CACHEDIRECTORY' entnommen wird.

TEMPORARY
Gibt an, dass der Cache nicht persistent zu speichern ist. Wenn weder PERSISTENT noch TEMPORARY angegeben wird, wird der Standardwert der Sicht DB2EXT.DBDEFAULTS mit dem Argument DEFAULTNAME='USEPERSISTENTCACHE' entnommen.

MAXIMUM CACHE SIZE speichergröße
Gibt die maximale Größe der im Cache gespeicherten Tabelle an, die bei der Ausführung des Befehls DB2TEXT ACTIVATE CACHE zu erstellen ist. Der Parameter für die Speichergröße ist in MB als positive ganze Zahl (INTEGER) anzugeben. Für die maximale Speichergröße ist kein Standardwert vorhanden. Wenn der Wert zu klein ist, schlägt der Befehl ACTIVATE CACHE fehl. Die tatsächliche Cachegröße wird bei der Ausführung des Befehls ACTIVATE CACHE berechnet.

Die maximale Cachegröße für die verschiedenen Plattformen beträgt:

Weitere Informationen finden Sie unter Anhang B, Nutzen großer Speicherkapazitäten.

PCTFREE prozentsatz
Gibt den Prozentsatz des Caches an, der für weitere Dokumente freizuhalten ist. Der Prozentsatz muss eine ganze Zahl kleiner als 100 und größer oder gleich 0 sein. Wenn er nicht angegebenen wird, wird der Standardwert der Sicht DB2EXT.DBDEFAULTS mit dem Argument DEFAULTNAME='PCTFREE' entnommen.

Details finden Sie in ACTIVATE CACHE.

INITIAL SEARCH RESULT ORDER (SQL-sortieren-nach-liste)
Gibt die Reihenfolge an, die bei der einleitenden Indexierung zum Abrufen des Inhalts der Benutzertabelle verwendet wird. Wenn Sie diese Option verwenden und die dynamische Rangordnung von Volltextsuchergebnissen überspringen, werden Dokumente in ihrer Indexierungsreihenfolge wie in der im Cache gespeicherten Ergebnistabelle zurückgegeben.

Weitere Informationen finden Sie in Kapitel 16, Suchfunktion über gespeicherte Prozedur.

Anmerkung

Die Indexreihenfolge kann für neue oder geänderte Dokumente nach einer Teilaktualisierung nicht gewährleistet werden. Beispiel: INITIAL RESULT ORDER(length(spalte1) asc, spalte2+spalte3 desc)

KEY COLUMNS FOR INDEX ON VIEW (SQL-spaltennamensliste)
Wenn Indizes für Sichten erstellt werden, muss die Klausel KEY COLUMNS FOR INDEX ON VIEW angegeben werden. Ansonsten darf diese Klausel NICHT angegeben werden. Die Liste der Spaltennamen gibt die Spalten an, die eine Zeile in der Sicht eindeutig identifizieren.

Da diese Eindeutigkeit nicht durch DB2 wie bei Primärschlüsseln überprüft werden kann, ist es die Aufgabe des Benutzers, eine gleichwertige Eindeutigkeit sicherzustellen. Die angegebenen Spalten bilden einen Teil der Protokolltabelle für den Index.

INDEX CONFIGURATION (optionswert), ...
Dies sind die Konfigurationswerte für den Index. Die Standardwerte sind unterstrichen.
Option Werte Beschreibung
TreatNumbersAsWords 0 oder 1 Interpretiert Folgen von Ziffern als separate Wörter, auch wenn sie neben Buchstaben stehen. Zum Beispiel bedeutet der Standardwert 0, dass 'tea42at5' als ein Wort betrachtet wird.
IndexStopWords 0 oder 1 Beachtet oder ignoriert Stoppwörter beim Indexieren. Gegenwärtig ist die Stoppwörterliste eine UCS-2-Datei mit dem Namen <sprache>.tsw im Verzeichnis <exemplar>/sqllib/db2ext/resources. Änderungen an dieser Datei sind nach der Erstellung des Indexes wirkungslos. Beachten Sie außerdem, dass <sprache> der Wert für LANGUAGE aus dem Befehl CREATE INDEX ist.
UpdateDelay Sekunden Gibt die Zeitdauer in Sekunden an, die für Teilaktualisierungen ohne Erfassungstabellen benötigt wird. Nur Einträge, die älter als diese Zeitdauer sind, werden aus der Protokolltabelle entnommen. Hierdurch soll der Verlust von Aktualisierungen verhindert werden, z. B. bei Dokumentänderungen, die in Transaktionsszenarios, in denen Benutzertransaktionen zu Problemen mit Aktualisierungsbefehlen führen, nicht im Index wiedergegeben werden. Aus diesem Grund sollte für den Parameter UpdateDelay die maximal zulässige Zeitdauer einer Benutzerschreibtransaktion für die Tabelle angegeben werden, für die der Index erstellt wurde.

CONNECT TO datenbankname
Der Name der Datenbank, die das Ziel für diesen Befehl darstellt. Dieser Parameter kann ausgelassen werden, wenn die Umgebungsvariable DB2DBDFT definiert ist und der Benutzer den Befehl auf dem Server ausführt. Beachten Sie, dass die Benutzer-ID über die erforderlichen DB2-Berechtigungen verfügen muss.

USER benutzer-id USING kennwort
Geben Sie ein kennwort und eine benutzer-id für die Herstellung einer Verbindung zur Datenbank an. Wenn Sie diese Angaben nicht machen, wird versucht, mit der aktuellen Benutzer-ID ohne Kennwort eine Verbindung herzustellen.

Änderungen an der Datenbank

Änderungen am gemeinsamen Speicher
Verzögert bis zur Ausführung des ACTIVATE-Befehls: Wenn die Klausel CACHE TABLE verwendet wird, wird ein Cache für die Ergebnistabelle im gemeinsamen Speicher erstellt.

Änderungen am Dateisystem

Benutzung

Zur Erstellung eines Volltextindexes ist ein Primärschlüssel in der Benutzertabelle erforderlich. In DB2 Net Search Extender Version 8.1 kann ein mehrspaltiger DB2-Primärschlüssel ohne Typeinschränkung verwendet werden. Bei der Tabellenwertsuche sind jedoch keine zusammengesetzten Primärschlüssel zulässig.

Die Anzahl der Primärschlüsselspalten ist auf 14, die Gesamtlänge aller Primärschlüsselspalten auf 1024 - 14 = 1010 Byte begrenzt.

Anmerkung

Beachten Sie, dass nach der Erstellung des Indexes die Länge der Primärschlüsselspalten oder der Sichtschlüsselspalten nicht durch ALTER TABLE-Befehle geändert werden darf.

Die Synchronisation zwischen der Benutzertabelle, dem Volltextindex und der im Cache gespeicherten Ergebnistabelle wird während der Ausführung des Befehls UPDATE INDEX durchgeführt. Weitere Informationen finden Sie in UPDATE INDEX.


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