Elasticsearch Indexierung (parallelisieren | alte Indices)

Hallo,

ich bin Entwickler und erstelle gerade für ein Unternehmen ein Shopware Onlineshop mit mehreren millionen Produkten im Sortiment. Perspektivisch ca ~ 10Mio Produkte, gestartet wird mit ~2Mio Produkten.

Das Importieren der ca 2Mio Produkten geht dank der Sync-API sehr flott (unter 4 Stunden). Das Indexing ist beim Sync-request ausgestellt mit Angabe vom Header im request:

indexing-behavior: 'disable-indexing'

Nach dem Imporieren würde ich jetzt gerne das Indexing triggern und habe dazu ein paar Fragen.

Der Aufbau der Neu-indexierung wird ja getriggert mit:

bin/console dal:refresh:index

So weit läuft das auch und er indexiert. Problem: Es kommt nach mehreren Stunden zum Abbruch ohne Message. Wir haben 3 Entities dir wir indexieren und definiert haben:

  1. Product
  2. SeoUrl
  3. Category

Er bricht nach mehreren Stunden irgendwann mitten bei SeoUrl ab. Wenn ich das Command erneut starte fängt er wieder bei Product an zu indexieren, was ja eigentlich durch ist.

1. Frage:

Wie kann ich das vermeiden? Gibt es eine Möglichkeit den Indexer zu parallelisieren bzw einen Indexer pro Entity zu triggern und nicht einen für alle?

Wahrscheinlich hätte ich die Probleme vermieden und beim Sync-Request folgenden Header setzen sollen:

indexing-behavior: 'use-queue-indexing'

Dann hätte der message-worker stück für stück indexiert?

2. Frage

Hat sich schon erledigt, danke:

@SCOOPEX schrieb:

Hallo,

die alten solltest Du von Zeit zu Zeit löschen - kannst Du wie folgt mit der Shopware CLI bewerkstelligen:

bin/console es:index:cleanup

Viele Grüße

Danke im Vorraus!

Hallo,

die alten solltest Du von Zeit zu Zeit löschen - kannst Du wie folgt mit der Shopware CLI bewerkstelligen:

bin/console es:index:cleanup

Viele Grüße

1 „Gefällt mir“