Konfigurieren einer Oracle-Datenbank zur Unterstützung von ArcSDE-XML-Spalten

ArcSDE-XML-Spalten verwenden Oracle-Textkomponenten, die standardmäßig mit Oracle installiert werden. Um sie verwenden zu können, müssen Sie Benutzern Berechtigungen für diese Komponenten gewähren. Anschließend müssen die Datenbank und ArcSDE ordnungsgemäß konfiguriert und gewartet werden, um die Suchergebnisse und Performance zu optimieren, insbesondere für XML-Spalten, die in anderen Sprachen als Englisch geschrieben sind, sofern Sie anderssprachige XML-Dokumente nutzen.

Wenn Sie beabsichtigen, eine Tabelle mithilfe des Inhalts einer XML-Spalte abzufragen, sollten Sie die folgenden Informationen für die Datenbank überprüfen:

Wenn die aktuellen Standardeinstellungen für die Sprache Ihrer XML-Dokumente nicht korrekt sind und keine benutzerdefinierten Texteinstellungen vorhanden sind, müssen Sie vor dem Erstellen der XML-Spalte benutzerdefinierte Texteinstellungen erstellen und mit dem ArcSDE-DBTUNE-Parameter "XML_IDX_INDEX_TEXT" darauf verweisen, damit Sie Ihre XML-Dokumente richtig indizieren und durchsuchen können.

Sie können die zum Indizieren der XML-Dokumente verwendeten Einstellungen auch anpassen. Hierzu müssen Sie die entsprechenden Einstellungen in Oracle erstellen und dann mit dem DBTUNE-Parameter "XML_IDX_INDEX_TEXT" in ArcSDE auf diese Parameter verweisen. Beim Erstellen einer XML-Spalte müssen Sie dann das DBTUNE-Schlüsselwort verwenden, das den benutzerdefinierten Parameter "XML_IDX_INDEX_TEXT" enthält.

AchtungAchtung:

Ändern Sie die Indizierung der Interpunktion nicht leichtfertig. Dieselbe Einstellung wird für die Indizierung des gesamten Textes in Ihren XML-Dokumenten verwendet. Für die Werte in einem XML-Element wird die Interpunktion möglicherweise anders verwendet als für die Werte in anderen XML-Elementen.

Schritte:
  1. Melden Sie sich bei SQL*Plus als Benutzer "ctxsys" an, um dem Benutzer Berechtigungen zu gewähren, der die XML-Spalte besitzt. Geben Sie hierzu folgenden Befehl aus:
    GRANT EXECUTE ON ctx_ddl TO <mdUsername>;
    

    <mdUsername> ist der Benutzer, der die XML-Spalte besitzt.

  2. Fragen Sie die Sicht "ctx_parameters" ab, um die aktuellen Standardeinstellungen für Ihre Oracle-Installation zu ermitteln.
    SELECT * FROM ctx_parameters;
    
  3. Fragen Sie die Sicht "CTX_PREFERENCES" ab, um die verfügbaren Einstellungen zu ermitteln. So können Sie z. B. feststellen, welcher lexikalische Scanner für die Einstellung "CTXSYS.DEFAULT_LEXER" verwendet wird. Hier werden auch alle von anderen Benutzern erstellten benutzerdefinierten Einstellungen beschrieben.
    SELECT * FROM ctx_preferences;
    
  4. Fragen Sie die Sicht "ctx_preferences_values" ab, um sicherzustellen, dass die Systemeinstellungen für die Sprache Ihrer XML-Dokumente richtig festgelegt sind.
    SELECT * FROM ctx_preference_values;
    
  5. Vergleichen Sie die Ergebnisse der oben genannten Abfragen mit den zulässigen Einstellungen für lexikalische Scanner, Wortlisten und andere Textobjekte im Oracle Text Reference Guide für Ihre Version der Datenbank.
  6. Wenn die aktuellen Standardeinstellungen für die Sprache Ihrer XML-Dokumente nicht korrekt sind und keine benutzerdefinierten Texteinstellungen vorhanden sind, müssen Sie benutzerdefinierte Texteinstellungen erstellen, damit die XML-Dokumente richtig indiziert und durchsucht werden.
  7. Fügen Sie dem DBTUNE-Parameter "XML_IDX_INDEX_TEXT" vor dem Erstellen der XML-Spalte die benutzerdefinierten Texteinstellungen hinzu.
  8. Überprüfen Sie vor dem Erstellen benutzerdefinierter Einstellungen die vom System bereitgestellten Textobjekte, und stellen Sie sicher, dass der lexikalische Scanner, den Sie verwenden möchten, in Ihrer Oracle-Installation verfügbar ist.
    SELECT * FROM ctx_objects;
    
  9. Sie können eine benutzerdefinierte Texteinstellung erstellen, die auf einen lexikalischen Scanner verweist, der im vorherigen Schritt zurückgegeben wurde.

    Wenn beispielsweise in der Liste "ctx_objects" der "WORLD_LEXER" zurückgegeben wurde, können Sie wie folgt eine benutzerdefinierte Texteinstellung erstellen, die auf diesen lexikalischen Scanner verweist:

    EXEC ctx_ddl.create_preference('WORLDLEXER', 'WORLD_LEXER');
    

  10. Legen Sie den DBTUNE-Parameter "XML_IDX_INDEX_TEXT" auf die Einstellung fest. Ändern Sie den Wert des Parameters "XML_IDX_INDEX_TEXT" unterhalb des Schlüsselworts "DEFAULTS" mit dem Befehl "sdedbtune". Nähere Informationen erhalten Sie unter Ändern des Inhalts der DBTUNE-Tabelle.

    Dem Namen der Einstellung muss stets der Name des Benutzers, der die Einstellung erstellt hat, vorangestellt sein. Wenn der Administrator der Geodatabase beim Erstellen der Einstellung beispielsweise als Benutzer "sde" angemeldet war, muss der Parameter "XML_IDX_INDEX_TEXT" die Einstellung wie folgt festlegen:

    LEXER sde.WORLDLEXER

  11. Stellen Sie sicher, dass die Einstellungen der Wortliste und Stoppliste für die Sprache korrekt festgelegt sind. Führen Sie andernfalls einen der folgenden Schritte aus:
    • Verwenden Sie für die Einstellungen einen der Werte für Ihre Sprache, die im Oracle Text Reference Guide definiert sind.
    • Wenn die benötigte Einstellung im Oracle Text Reference Guide nicht definiert ist, erstellen Sie eine benutzerdefinierte Einstellung, und fügen Sie sie zum Wert des Parameters "XML_IDX_INDEX_TEXT" in der DBTUNE-Tabelle hinzu.

Wenn die aktuellen Standardeinstellungen für die Sprache Ihrer XML-Dokumente nicht korrekt sind und keine benutzerdefinierten Texteinstellungen vorhanden sind, müssen Sie vor dem Erstellen der XML-Spalte benutzerdefinierte Texteinstellungen erstellen und mit dem ArcSDE-DBTUNE-Parameter "XML_IDX_INDEX_TEXT" darauf verweisen, damit Sie Ihre XML-Dokumente richtig indizieren und durchsuchen können.

9/11/2013