Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core für Entwickler > agorum core JavaScript-API > agorum core smart search


Solr-Index komplett neu aufbauen (recreate)

Dieses Dokument beschreibt, wie Sie den Solr-Suchindex in agorum core vollständig löschen und neu aufbauen können. Diese Operation sollte nur in Ausnahmefällen durchgeführt werden, da sie erhebliche Auswirkungen auf die Systemverfügbarkeit hat.

Achtung: Das Neuerstellen des Solr-Index ist eine kritische Operation, die nur von erfahrenen Administratoren durchgeführt werden sollte. Die Ausführung führt dazu, dass Objekte temporär nicht über die Suche auffindbar sind.

Hintergrund

Der Solr-Index speichert alle durchsuchbaren Informationen der agorum core Objekte. In seltenen Fällen kann es notwendig sein, diesen Index komplett zu löschen und neu aufzubauen. Dazu zählen:

Auswirkungen der Operation

Achtung: Beachten Sie folgende Auswirkungen, bevor Sie diese Operation ausführen:

Auswirkung Beschreibung
Index wird gelöscht Der gesamte Suchindex wird unwiderruflich gelöscht.
Neuindizierung beim Neustart Beim nächsten Neustart von agorum core werden alle Objekte in eine Queue geschoben und im Hintergrund neu indiziert.
Lange Laufzeit Die Neuindizierung kann je nach Datenmenge Stunden, Tage oder sogar Wochen dauern.
Eingeschränkte Suchfunktion Während der Neuindizierung sind viele Objekte über die Suche nicht auffindbar.
Reihenfolge Die Indizierung erfolgt von neu nach alt – neuere Objekte sind zuerst wieder suchbar.

Das Recreate-Script

Verwenden Sie folgendes JavaScript, um den Solr-Index neu aufzubauen:

Hinweis: Das Skript enthält einen Sicherheitsmechanismus. Die Funktion run() ist standardmäßig auskommentiert und muss manuell aktiviert (einkommentiert) werden.

let { RecreateIndexHelper } = Packages.agorum.roi.autoupdate.common;

let json = require('client/json');
let solr = json('http://localhost:8981/solr');

let run = () => {
  // Step 1: delete existing collection
  solr('/admin/collections').get({
    action: 'DELETE',
    name: 'agorumsolr01',
  });

  // Step 2: create new collection
  solr('/admin/collections').get({
    action: 'CREATE',
    name: 'agorumsolr01',
    'collection.configName': 'agorumsolr01',
    nodes: '1',
    numShards: '1',
    maxShardsPerNode: '1',
    replicationFactor: '1',
  });

  // Step 3: enable recreate at next start
  RecreateIndexHelper.createRecreateInfo(1, 'solr');
};

// ATTENTION: Only remove the comment signs below
// if you are fully aware of the consequences
// run();
  

Ausführung

  1. Öffnen Sie die Skript-Konsole in agorum core oder verwenden Sie den Code-Editor.
  2. Kopieren Sie das oben stehende Skript.
  3. Entfernen Sie die Kommentarzeichen vor run(); am Ende des Skripts.
  4. Führen Sie das Skript aus.
  5. Starten Sie agorum core neu, um die Neuindizierung zu starten.
  6. Überwachen Sie den Fortschritt der Indizierung in den Logs.

Tipp: Planen Sie die Ausführung für Zeiten mit geringer Systemlast, idealerweise außerhalb der Geschäftszeiten oder am Wochenende.