Modul Index Management

Index Management

Das Modul Index Management für B2B by Practice ist zur Administration der verwendeten Indizes gedacht. Es unterteilt sich in vier Bereiche, die im Folgenden beschrieben werden.

Microservice

Mehr Details finden Sie hier: Index Management Microservice

Installation

Zur Verwendung des Index Managements muss das Modul zunächst per Rollenattribut aktiviert werden.

Wechseln Sie in das Benutzermanagement unter den Menüpunkt Attribute. Hier legen Sie einen neuen Eintrag an, damit Benutzer mit der Funktionalität aus dem Index Management versorgt werden können.

Legen Sie hierzu folgenden Eintrag neu an:

Attribut ID Modul_IndexManagement

Wert:

Override={view=mainView,type=AddChild,target=toolBarBox,name=org.b2bbp.ui.uicomponent.MainNavLinkButton,value=[id:'indexManagement';label:'Index Management';isExtension:'false';type:'com.nextlevel.b2b.indexmanagement.ui.swf';provider:'nextlevel.com';version:'1.0';container:'applicationViewStack';toolTip:'IndexManagement';width:'180';labelPlacement:'right';textAlign:'left';horizontalGap:'10';paddingLeft:'5';paddingRight:'5';iconURL:'images/famfamfam-icons/computer_key.png']}

Das Rollenattribut ist jetzt eingerichtet. Sie können jetzt unter Rollen eine Rolle für das Index Management anlegen und diese den Benutzern zuordnen.

Index Übersicht

Über den Menüpunkt Übersicht gelangen Sie zur Indexübersicht.

Index Übersicht

Nachdem Sie auch hier einen Index Typ ausgewählt haben, erhalten Sie eine Vielzahl von Informationen über den Index: Indexpfad, Indexversion, Änderungsdatum, physikalische Größe, Zustand der Optimierung, Anzahl der Dokumente, Anzahl der Felder, Ansicht aller Indexdateien.

Im unteren Bereich sehen Sie eine Übersicht über die Indexfelder und deren Anteil am Index. Über den Button „Top Terms“ erhalten Sie nach Auswahl eines Feldes in der linken Tabelle diejenigen Indexeinträge mit den besten Rankings in diesem Feld. Über das Feld „Anzahl Terms“ können Sie die Suchergebnisse auf eine bestimmte Anzahl beschränken.

Dokumentensicht

Über den Menüpunkt Dokumente gelangen Sie zum Dokumentbrowser.

Index Dokumente

Hier können Sie nach Auswahl eines Index Types über die Pfeile bzw. den Schieber durch den Index navigieren und die einzelnen Dokumente und deren Inhalt zur Anzeige bringen. Durch Eingabe einer Dokumentnummer im Feld „Dok.Nr.:“ kann ein bestimmtes Dokument direkt zur Anzeige gebracht werden.

Indexsuche

Über den Menüpunkt Suchen gelangen Sie zur manuellen Indexsuche.

Indexsuche

Abbildung 8: Ergebnisse einer Suchanfage

Hier können Sie nach Auswahl eines Index Types und eines Analyzers manuell im Index suchen.

Die Suchphrase muss dazu in Lucene-Syntax angegeben werden. Über das Feld „maximale Treffer“ schränken Sie die Anzahl der Suchergebnisse ein. Im Feld „Suchstartpunkt“ bestimmen Sie, ab welcher Dokumentnummer im Index gesucht werden soll, alle Dokumente vor dem angegebenen werden bei der Suche ignoriert.

Re-/Indizierung von Indizes

Das Index Management ist entwickelt worden, um Indizes im Nachhinein wieder aufbauen zu können. Dies erfolgt aus den gespeicherten Nachrichten der B2B by Practice Datenbank. Hierzu wird eine Synchronisation zwischen Datenbank und Suchindex durchgeführt.

Es lassen sich mit dieser Funktion allerdings auch komplett neue Indizes aufbauen. Dies kann notwendig werden, wenn z.B. ein neuer Index eingeführt wird und die Altdaten auch darauf angewendet werden sollen.

Konfiguration der Re-/Indizierungsfunktion

Für die Re-/Indizierungsfunktion muss eine Extension-Datei namens B3P_INDEX_MANAGEMENT eingerichtet werden. Provider- und Versionsinformationen müssen hierfür nicht angegeben werden.

Diese Datei regelt, welche Indizes für eine Nachrichten-Reindizierung in Frage kommen. Zudem kann pro angegebenen Index eine Ausschlussliste der Channels definiert werden, die bei einer Datensynchronisation nicht berücksichtig werden sollen. Weiterhin müssen Reindizierer (Programme; hier voll qualifizierte Java Klassennamen) angegeben werden, die die ausgewählten Funktionen zur Verfügung stellen. Hierüber ist es möglich, eigene Indizierer zu schreiben.

In der folgenden Textbox sehen Sie eine Beispielkonfiguration für B3P_INDEX_MANAGEMENT:


## Index Management Konfigurationsdatei ##
## Konfiguration verfügbarer Indizes und Ihrer Sucher, Indiziere
indexes=B3P_SEARCH_INDEX_DIRECTORY;B3P_FLEXIBLE_SEARCH_INDEX_DIRECTORY
B3P_SEARCH_INDEX_DIRECTORY.reindexer=org.b2bbp.search.index.ReIndexer
B3P_SEARCH_INDEX_DIRECTORY.syncField=messageId
B3P_SEARCH_INDEX_DIRECTORY.table=B2BBP_INDEX_SYNC<
B3P_SEARCH_INDEX_DIRECTORY.dao=org.b2bbp.engine.persistence.dao.IndexSyncDAO
B3P_SEARCH_INDEX_DIRECTORY.updateOnSearch=false
B3P_FLEXIBLE_SEARCH_INDEX_DIRECTORY.reindexer=org.b2bbp.search.searcher.util.FlexibleReIndexer
B3P_FLEXIBLE_SEARCH_INDEX_DIRECTORY.syncField=B3P.MessageId
## ausgeschlossene Channels für die Synchronisierung zwischen Datenbank und Index
excluded.B3P_SEARCH_INDEX_DIRECTORY=OUTBOUND_MSCONS_CSV

Unter dem Attribut indexes können die Channel-Ids angegeben werden, die für die Funktionen des Index Managements verwendet werden können. Die Ids müssen mit denen aus den Einträge aus dem Bereich der Global Properties übereinstimmen.

Über <Index Id>.reindexer wird voll qualifiziert eine Java Klasse angegeben, die die Funktion zur Verfügung stellt. Mit <Index Id>.syncField wird der Feldname angegeben, über den die Synchronisation zwischen Index und Datenbank durchgeführt wird.

Weiterhin kann eine Channel-Ausschlussliste angegeben werden, die bei der Synchronisation nicht berücksichtig wird. Diese wird unterschieden in einen allgemeinen und einen Index-spezifischen Teil. Die Definition der allgemeinen Ausschlussliste wird über excluded.default, die spezifische über excluded.<Index id> definiert.

Konfiguration für die Reidndizierung des Archivindexes:

B3P_LUCENE_INDEX_FOLDER.reindexer=org.b2bbp.search.index.ArchiveReIndexer
B3P_LUCENE_INDEX_FOLDER.syncField=messageId

Synchronisierungsdaten

Die Synchronisierung des Indexes läuft über eine Datenbanktabelle, z.B. B2BBP_INDEX_SYNC oder B2BBP_CCM_INDEX_SYNC. Mit weiteren Einstellungen können Informationen bezüglich dieser Tabellen angezeigt werden.

In der oben aufgeführten Konfiguration der B3P_INDEX_MANAGEMENT kann mit <Index Id>.table die Datenbanktabelle angegeben werden, in welcher die Synchronisierungsdaten zwischengespeichert werden. Die Anzahl der Elemente in dieser Tabelle wird dann im Index Management angezeigt. Über <Index Id>.dao kann zusätzlich die DAO-Klasse gespeichert werden (zum Anzeigen des Datums des ältesten Eintrags in obiger Tabelle). Mit dem Wert<Index Id>.updateOnSearch=true kann aktiviert werden, dass die Synchronisierungsdaten bei jeder Suche im Monitor sowie im Arbeitsvorrat erneut geladen werden.

Beispiel:

B3P_SEARCH_INDEX_DIRECTORY.table=B2BBP_INDEX_SYNC
B3P_SEARCH_INDEX_DIRECTORY.dao=org.b2bbp.engine.persistence.dao.IndexSyncDAO
B3P_SEARCH_INDEX_DIRECTORY.updateOnSearch=true
B3P_FLEXIBLE_INDEX_CORR_DIRECTORY.table=B2BBP_CCM_INDEX_SYNC
B3P_FLEXIBLE_INDEX_CORR_DIRECTORY.dao=org.b2bbp.engine.persistence.dao.CcmIndexSyncDAO

Die zweite Zeile ist hier auskommentiert, das Datum des ältesten Eintrags für den Volltextindex wird also nicht angezeigt.

Zusätzlich werden diese Daten für den CCM-Index in den CCM-Arbeitsvorräten angezeigt und können für den Volltextindex im Monitoring angezeigt werden. Hierzu ist zusätzlich der folgende Override nötig.

Override={view=monitoringView,type=SetProperty,target=indexSyncData,name=visible,value=true}

Re-/Indizieren von Nachrichten

Wenn Sie über den neuen Menüpunkt “Index Management” einsteigen, gelangen Sie über das Detailmenü zur Funktion „Re-/Indizierung“

Reindizierung

Zur Re-/Indizierung müssen Sie zunächst einen Index auswählen, den Sie reindizieren möchten. Diesen wählen Sie über die Auswahlbox Index Typ aus. Über die Datumsauswahlfelder wählen Sie den Zeitraum, für den Sie die Reindizierung durchführen möchten.

In der Liste Ausgeschlossene Channels sind die Channel aufgelistet, die für eine Reindizierung keine Nachrichten (Daten) liefern. Diese werden erst angezeigt, sobald ein Index Typ gewählt wurde.

Mit einem Klick auf synchronisieren wird ein Abgleich zwischen den Daten des Index und der B2B by Practice Datenbank für den gewählten Zeitraum durchgeführt.

Reindizierung Ergebnisse

Sie erhalten eine Ergebnisliste in Tabellenform. Darin sind alle Nachrichten aufgelistet, die nicht im gewählten Index gefunden wurden. Über die gelieferten Informationen können Sie ermessen, ob die Nachricht nachindiziert werden sollen.

Wählen Sie aus den Ergebnissen die Nachrichten aus, die Sie nachindizieren möchten. Sollen alle Nachrichten reindiziert werden, klicken Sie auf den Button „Alle Nachindizieren“.

Protokoll der Reindizierung

Nachdem Sie eine Reindizierung gestartet haben, erhalten Sie ein Protokoll über die Ergebnisse der angeforderten Aktion. Im Beispiel (siehe Abbildung) können Sie sehen, dass die Indizierung einer Nachricht nicht erfolgreich war. Es kann durchaus sein, dass eine Nachricht nicht nachindiziert werden kann, da z.B. keine EDI-Nachricht gefunden werden konnte. Dies wird Ihnen ebenfalls im Protokoll mitgeteilt.

Re-/Indizieren ohne Suche im Index

Mit einem Klick auf “Synchronisieren” wird ein Abgleich zwischen den Daten des Index und der B2B-Datenbank durchgeführt. Nur Nachrichten, die im Index nicht vorhanden sind, werden angezeigt. In bestimmten Situationen kann es sinnvoll sein, die Suche im Index zu überspringen. Das kann erreicht werden, wenn man in der Extension B3P_INDEX_MANAGEMENT die Property <Index Id>.syncWithSearch=false hinzufügt.

Die Property soll mit Vorsicht benutzt werden, weil dadurch Duplikate im Index erzeugt werden können.

Einzelne Menüpunkte entfernen

Einzelne Menüpunkte können per Rollenattribut entfernt werden. Dadurch kann man zum Beispiel den Bereich “Reindizierung” für eine Benutzerrolle ausblenden.

Dafür muss folgender Rollenattribut angelegt und einer Rolle zugewiesen werden:

Name: RemoveIndexManagementReindex

Wert: Override={view=IndexManagement,type=RemoveChild,target=idx_reIndex}

Analog können andere Bereiche ausgeblendet werden. Es muss nur als target die richtige Id angegeben werden:

  • Übersicht: idx_overview
  • Dokumente: idx_docs
  • Suchen: idx_search
  • Re-/Indizierung: idx_reIndex
View Me   Edit Me