BDM Migrationstool

BDM Migrationstool

Motivation

Wenn das Searchsystem während des Betriebs von Lucene auf BDM (Elasticsearch) geändert wird, müssen alle Daten im Lucene-Index auf BDM (Elasticsearch) -Index importiert werden, weil elasticsearch keinen Luceneindex versteht. Mit dem Tool kann man den Luncenindex schnell in Elasticsearch migrieren.

Der zu migrierende Zeitintervall wird konfiguriert. Sollten BDM bereits Einträge in diesem Zeitintervall besitzen, werden sie gelöscht

Einrichtung für die Migration

Das Tool liegt im IndexRepairToolkit. Nach dem Runterladen und Entzippen des Tools sind folgende Einrichtung vorzunehmen.

B2B-Extension

In der B2B-Extension SEARCH_LAYER_MIGRATION_CONFIGURATION sollen alle Konfigurationen für BDM-Searchsystem eingetragen werden wie bei dem Searchsystem BDM-Searchsystem Konfiguration

Konfiguration des Migrationstools

  • DB-Einstellung: Die Datei dbconnection.txt im Hauptverzeichnis des Toolkit muss entsprechend der B2B-DB angepasst werden.

Beispiel

B2BBP_DRIVER_CLASS=org.postgresql.Driver
B2BBP_DBCONNECTION=jdbc:postgresql://localhost:5432/postgres
B2BBP_DBUSER=postgres
B2BBP_DBPWD=***********
  • JDBC-Treiber: Im Hauptverzeichnis muss der JDBC-Treiber abgelegt werden

  • Konfiguration der Migration: Die Datei property.txt im Hauptverzeichnis des Toolkits muss angepasst werden. Folgende Parameter sind zu definieren:

Parameter Bedeutung Beispiel
INDEX_PATH Pfad des zu migrierenden Indexes /data/B2B/index/full
DATETIME_FROM Suchstring für den Start des Zeitintervalls 20150101
DATETIME_TO Suchstring für das Ende des Zeitintervalls 20150201
SEARCH_TYPE Searchtype FULLTEXT | CCM | ARCHIVE
BUFFER_SIZE (*) Maximale Anzahl der gleichzeitig zu übertragenen Einträge (Default: 1000) 500
MAX_RESTORED_FIELDS_LENGTH_IN_BYTES (*) Ungefähre maximale Größe des Batches in Bytes (Default: 50 MB) 10000000

(*) die Felder sind optional

Parameter DATETIME_FROM und DATETIME_TO werden in Suchanfragen verwendet, um zu löschende und zu migrierende Einträge über ein Zeitintervall zu finden, etwa Started_dt:[20150101 TO 20150201] Die Intervallgrenzen sind eingeschlossen (inclusive), allerdings enthalten die eigentlichen Werte im Lucene-Index die Uhrzeit (20150201000000), sodass die Suche nach Started_dt:[20150101 TO 20150201] nur die Einträge aus Januar finden wird und keine Einträge aus dem Februar.

Start

Mit dem folgenden Befehl aufgerufen werden:

  • Linux: java -classpath .:* -Dorg.apache.lucene.FSDirectory.class=org.apache.lucene.store.MMapDirectory index.reindex.bdm.ReindexerBDM
  • Windows: java -classpath .;* -Dorg.apache.lucene.FSDirectory.class=org.apache.lucene.store.MMapDirectory index.reindex.bdm.ReindexerBDM
View Me   Edit Me