Index Management

Adobe Commerce und Magento Open Source führen automatisch eine Neuindizierung durch, wenn sich ein oder mehrere Artikel ändern. Zu den Aktionen, die eine Neuindizierung auslösen, gehören Preisänderungen, das Erstellen von Preisregeln für Kataloge oder Warenkörbe, das Hinzufügen von neuen Kategorien und so weiter. Um die Leistung zu optimieren, sammelt Commerce die Daten in speziellen Tabellen mit Indexern. Wenn sich die Daten ändern, müssen die indizierten Tabellen aktualisiert werden - oder neu indiziert werden. Commerce führt die Neuindizierung im Hintergrund durch, und Ihr Shop bleibt während dieser Prozesse zugänglich.

Die Neuindizierung der Daten beschleunigt die Verarbeitung und verkürzt die Wartezeit für den Kunden. Wenn Sie zum Beispiel den Preis eines Artikels von 4,99 $ auf 3,99 $ ändern, indiziert Commerce die Daten neu, um die Preisänderung im Shop anzuzeigen. Ohne Indexierung müsste Commerce den Preis für jedes Produkt spontan berechnen und dabei die Preisregeln des Warenkorbs, Paketpreise, Rabatte, Staffelpreise usw. berücksichtigen. Das Laden des Preises für ein Produkt könnte länger dauern, als der Kunde zu warten bereit ist.

Die Indexer können so eingestellt werden, dass sie entweder beim Speichern oder nach Zeitplan aktualisiert werden. Alle Indizes können beide Optionen verwenden, mit Ausnahme des Kundenrasters, das nur beim Speichern aktualisiert werden kann. Wenn die Indizierung beim Speichern erfolgt, startet Commerce eine Neuindizierung beim Speichern. Die Indexverwaltungsseite wird aktualisiert und die Nachricht über die Neuindizierung wird innerhalb von ein oder zwei Minuten gelöscht. Bei der zeitgesteuerten Neuindizierung wird eine Neuindizierung nach einem Zeitplan als Cron-Job ausgeführt. Eine Systemmeldung wird angezeigt, wenn ein cron job nicht verfügbar ist, um ungültig gewordene Indexierer zu aktualisieren. Ihr Speicher bleibt während der Neuindizierung zugänglich.

Wenn Sie eine Neuindizierung durchführen müssen, wird oben auf der Seite eine Benachrichtigung angezeigt. Der Index und die Meldung werden je nach Neuindizierungsmodus und möglichen Aktionen, die Sie durchführen, gelöscht. Siehe Indexierungsübersicht im Commerce Developer Guide.

Indexverwaltung - Benachrichtigung Neuindizierungs-Benachrichtigung

Index-Verwaltung - Aktionen Indexverwaltung

  • Die Indexverwaltung ist für flache Produktkataloge etwas anders aufgebaut.
  • Um Probleme zu vermeiden, wenn mehrere Admin-Benutzer Objekte aktualisieren, die eine automatische Neuindizierung auslösen, empfehlen wir, dass Sie alle Indexer so einstellen, dass sie zeitgesteuert als cron jobs laufen. Andernfalls kann es bei jedem Speichern eines Objekts bei Objekten mit Abhängigkeiten zu einem Deadlock kommen. Zu den Symptomen eines Deadlocks gehören eine hohe CPU-Auslastung und MySQL-Fehler. Als beste Praxis empfehlen wir Ihnen, die Indizierung nach Zeitplan durchzuführen.
  • By default, admin actions, such as reindexing, are logged by the system and can be viewed in the Action Logs Report. Action logging can be configured in the Admin Actions Logging in den erweiterten Admin-Einstellungen Ihres Shops.

Best Practices für die Neuindizierung

Reindizierung und Zwischenspeicherung haben in Commerce unterschiedliche Zwecke. Indizes verfolgen Datenbankinformationen, um die Suchleistung zu erhöhen, Daten schneller für Frontend abzurufen, und mehr. Caches speichern geladene Daten, Bilder, Formate und ähnliches, um die Leistung beim Laden und Zugreifen auf das Frontend zu erhöhen.

  • Normalerweise sollten Sie bei der Aktualisierung von Daten in Commerce eine Neuindizierung vornehmen.
  • Wenn Sie einen großen Shop oder mehrere Shops haben, möchten Sie vielleicht Indexer wie Kategorie und Produkte auf geplante Cron-Jobs einstellen, da diese möglicherweise in einer Schleife neu indiziert werden. Möglicherweise möchten Sie die Neuindizierung auf einen Zeitplan außerhalb der Hauptgeschäftszeiten festlegen.
  • Bei der Neuindizierung müssen Sie nicht auch einen Flush-Cache durchführen.
  • Bei neuen Commerce-Installationen müssen Sie den Cache leeren und neu indizieren.
  • Beim Leeren des Caches und der Neuindizierung wird der Webbrowser-Cache Ihres Computers nicht geleert. Wir empfehlen, auch den Browser-Cache zu leeren, nachdem Sie Aktualisierungen an Ihrem Frontend vorgenommen haben.

Ändern Sie den Indexmodus

Wichtig: Für diejenigen, die die B2B-Erweiterung verwenden und Elasticsearch als Volltext-Indexer (catalogsearch_fulltext) eingestellt haben: Der Volltext-Index muss nach jeder Änderung der Massenberechtigungen oder wenn der Indexer “permissions” im Modus “Scheduled” ist, erneut ausgeführt werden.

  1. Gehen Sie in der Seitenleiste von Admin auf System > Tools > Indexverwaltung.

  2. Aktivieren Sie das Kontrollkästchen für jeden Indexierer, den Sie ändern möchten.

  3. Setzen Sie Aktionen auf eine der folgenden Möglichkeiten:

    • Aktualisieren beim Speichern
    • Aktualisierung nach Zeitplan
    • Index ungültig machen

    Wichtig: Das Kundenraster kann nur mit Update on Save neu indiziert werden. Dieser Index unterstützt nicht Update by Schedule.

  4. Klicken Sie auf Submit, um die Änderung auf jeden ausgewählten Indexierer anzuwenden.

    Indexverwaltungsspalten

    Spalte Beschreibung
    Indexierer Der Name des Indexierers.
    Beschreibung Eine Beschreibung des Indexierers.
    Modus Zeigt den aktuellen Aktualisierungsmodus für jeden Indexer an. Optionen:
    Aktualisierung beim Speichern - Der Index wird so eingestellt, dass er immer dann aktualisiert wird, wenn eine Entitätsänderung gespeichert wird. Zu diesen Entitäten gehören Produkte, Kategorien und Kunden. Wenn der Speichervorgang abgeschlossen ist, beginnt eine Reihe von Schritten, um die Änderungen zu erfassen und den Index zu aktualisieren. Die Indexverwaltungsseite wird innerhalb von ein oder zwei Minuten aktualisiert und die Nachricht über die Neuindizierung geleert.
    Aktualisierung nach Zeitplan - Der Index ist so eingestellt, dass er nach einem Zeitplan gemäß einem Cron-Job aktualisiert wird. Der Cron-Job enthält das Zeitintervall für die Neuindizierung und schreibt Aktualisierungen in den Index, wenn er ausgeführt wird.
    Zeitplan-Status Zeigt die Aktualisierungen des Zeitplanstatus an.
    Status Zeigt eine der folgenden Optionen an:
    Bereit - Der Index ist auf dem neuesten Stand.
    Geplant - Die Neuindizierung ist geplant.
    Läuft - Die Neuindizierung läuft gerade.
    Neuindizierung erforderlich - Es wurde eine Änderung vorgenommen, die eine Neuindizierung erfordert, aber die Indexer können nicht automatisch aktualisiert werden. Prüfen Sie, ob cron verfügbar und korrekt konfiguriert ist.
    Aktualisiert Zeigt das Datum und die Uhrzeit an, zu der ein Index zuletzt aktualisiert wurde.

Neuindizierung über die Kommandozeile

Commerce bietet zusätzliche Optionen für die Neuindizierung über die Befehlszeile. Diese Optionen erfordern möglicherweise die Unterstützung von Entwicklern, um sie auszuführen. Vollständige Details und Befehlsoptionen finden Sie unter Reindex in Verwalten der Indexer. Das DevDocs PHP-Entwicklerhandbuch enthält auch einen Abschnitt Indizierung.