Service zum indizieren von Daten

Allgemeines

Der IndexService ist ein aktiver Service, welcher genutzt werden kann, um verschiedene Daten in einen Such-Index zu schreiben. Die Standardanwendung ist das Schreiben der Daten in den Volltextindex.

Konfiguration des IndexService

Index Service

Technische Beschreibung

Klassenpfad: org.b2bbp.service.inbound.index.IndexService2

Der Service holt Dokumente aus der Datenbanktabelle B2BBP_INDEX_SYNC und schreibt diese in einen Lucene Index in einem konfigurierten Verzeichnis.

Service Eigenschaften

ServiceProperty / Eigenschaften Beschreibung Werte
B3P_POLL_INTERVAL Zeitraum, den der IndexService pausiert, bevor die nächste Menge an Dokumenten gelesen und verarbeitet wird. Wert in Sekunden (Default: 15 s)
B3P_MAX_FILES Anzahl der Dokumente, die pro Durchlauf aus der Datenbank geladen und verarbeitet werden. Ganzzahliger Wert (Default: 50)
B3P_SEARCH_INDEX_TYPE Indextyp, in welchen geschrieben werden soll. Diese Eigenschaft verweist auf den Typ, der in der Extension SEARCH_LAYER_CONFIGURATION definiert ist Abhängig vom zu füllenden Index (kein Default-Wert)

Index Typ

Mögliche Indextypen, also Varianten für die Serviceeigenschaft B3P_SEARCH_INDEX_TYPE, sind:

  • FULLTEXT
  • SYSTEMSPLIT_METERINGPOINT
  • SYSTEMSPLIT_RESPONSE

Für eine Übergangszeit sind noch die alten Werte (B3P_SEARCH_INDEX_DIRECTORY, B3P_SYSTEM_INDEX_DIRECTORY, B3P_METERINGPOINT_INDEX) erlaubt.

Index Operationen

Die Dokumente aus der Datenbanktabelle B2BBP_INDEX_SYNC tragen den Operationseintrag ADD oder UPD(=Update):

  • ADD: Dokument wird in den Index geschrieben (Standardoperation)
  • UPD: Bereits bestehende Dokumente im Index mit gleichem ID-Feld, wie das neue Dokument, werden ersetzt

Aktuell wird die UPD-Operation für den B3P_METERINGPOINT_INDEX (im Rahmen der manuellen ZP Index Aktualisierung im Systemweichenmonitoring) unterstüzt.

Pause State im Index Service

Überblick

Unter bestimmten Umständen ist es nötig den Zugriff auf einen LUCENE Index durch die B2B by Practice in einem bestimmten Zeitraum zu unterbinden. In dem folgenden Dokument wird beschrieben wird eine Zugriffsunterbindung für den org.b2bbp.service.inbound.index.IndexService2 konfiguriert werden kann.

Customizing

Um für einen Index Service einen Zeitraum zu definieren, in dem dieser kein Zugriff auf einen LUCENE Index ausführt, muss zunächst für den Service die folgende Eigenschaft gesetzt werden:

B3P_ENABLE_SERVICE_PAUSE_STATE = true

Der eigentliche Zeitraum, in dem kein Zugriff durch einen Index Service auf seinen Index erfolgen soll, wird durch die Extension mit dem Namen service_pause_interval_[Service ID] definiert. In ihr wird festgelegt in welchen Abständen der Zugriff auf den LUCENE Index ausgesetzt wird. Bei der Erstellung der Extension ist auf groß und Kleinschreibung bei den Schlüsselworten (repeatInterval, daysOfWeek, startTime, endTime) zu achten. Die Extension beinhaltet B2BBPProperties, d.h. eine Zeile kann ein Key-Value Paar getrennt durch : oder = enthalten.

Das repeatInterval definiert, in welchen Abständen keine Zugriffe erfolgen sollen. Zurzeit kann sowohl ein täglicher Zyklus, durch das Setzen des repeatInterval auf Daily, als auch ein wöchentlicher Zyklus, durch Weekly definiert werde. Durch die Einträge startTime und endTime wird der Zeitraum festgelegt, in dem kein Zugriff erfolgen soll. Start und Endzeitpunkt haben das Format HH:MM.

Soll ein wöchentlicher Zyklus definiert werden, müssen zusätzlich die Wochentage bestimmt werden, an denen kein Zugriff erfolgen soll. Dies geschieht durch den Eintrag daysOfWeek, dem sowohl eine Liste der entsprechenden Wochentage (MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) als auch eine Liste von Zahlen zwischen 1 und 7, wobei 1 für den Sonntag und 7 für den Samstag steht, zugewiesen werden kann. Die einzelnen Wochen Tage werden durch ein Semikolon getrennt.

Wird der Zugriff eines Index Service auf einen Index unterbunden, erfolgt ein Eintrag in der Log Datei: „index.IndexService2  Service [Service ID]  is in PAUSE STATE“

Beispiele

Index Zugriff wird jeden Montag und Sonntag zwischen 10:30 und 11:30 unterbunden.

repeatInterval = Weekly
daysOfWeek = Monday; Sunday
startTime = 10:30
endTime = 11:30

Äquivalent kann auch definiert werden:

repeatInterval = Weekly
daysOfWeek = 2; 1
startTime = 10:30
endTime = 11:30

Soll es eine sich täglich wiederholende Zugriffsunterbindung geben so kann diese wie folgt definiert werden:

repeatInterval = Daily
startTime = 10:30
endTime = 11:30

 

View Me   Edit Me