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