2016-08-04 30 views

Antwort

4

Ich fand der Solr-Index hat zwei Indexer-Modus: Direct und Two-Phase. Mit der Möglichkeit der zweiphasigen Solr-Indizierung in Hybris konnte ich einen vollständigen Index erstellen, ohne die Suche zu unterbrechen.

Per Hybris Wiki gibt es zwei Indexer-Modus:

DIRECT: Im Falle der vollständigen Index Betrieb wird der aktuelle Index durch einen neuen Index entfernt und ersetzt. Für eine gewisse Zeit ist der Index für die Benutzer zur Abfrage nicht vollständig verfügbar.

TWO_PHASE: Der aktuelle Index bleibt aktiv, bis der neue Index im neuen Solr-Kern erstellt wurde. Danach erfolgt ein neuer Index des alten Index und kann von Benutzern ohne Abschaltperioden abgefragt werden. Externe Front-End-Anwendungen müssen nicht wissen, welcher Solr-Indexerkern zum aktuellen Zeitpunkt aktiv ist.

1

Ich würde vorschlagen, dass Sie vollständige Indexierung in Offline-Stunden erreichen. Wir machen dasselbe für unsere Anwendung, beim ersten Mal oder bei der vollständigen Offline-Indexierung.

Es ist nicht für die Suche verfügbar, bis die vollständige Indizierung nicht abgeschlossen ist.

Sie können den Status beibehalten, ob die Indexierung abgeschlossen und für die Suche verfügbar ist.

+0

Hallo Abhijit! Danke für deine Antwort. Ich habe mehr nach Solr Indizierung gesucht. Ich fand den Solr-Index hat zwei Indexer-Modus: Direct und Two-Phase. Mit der Möglichkeit der zweiphasigen Solr-Indizierung in Hybris konnte ich einen vollständigen Index erstellen, ohne die Suche zu unterbrechen. –

+0

Ich dachte auch über Indizierung in Offline-Stunden, aber ich fand in einigen Fällen solr vollen Index dauerte mehr als einen Tag für eine Million Produkte oder konnte abrupt stoppen. Also konnte ich dieses Risiko nicht eingehen. –

+0

ok ... es ist gut, du hast die Antwort ... und mir ist Hybris nicht sehr bewusst ... –

3

Die Verwendung von zweiphasigem Commit ist nur bei Verwendung eines einzelnen solr-Servers oder eines Clusters ohne die Einstellung "Master ausschließlich für die Indizierung verwenden" sinnvoll. Die Verwendung von zweiphasigem Commit ist hauptsächlich nützlich für kleine Single-Node-Dev-Sandbox- und CI/UAT-Testinstallationen.

Hybris Commerce verwaltet einen Cluster von solr-Servern. Verwenden Sie für Bereitstellungs- und Lasttestbereitstellungen mindestens zwei, wobei einer als Master konfiguriert ist und jeder weitere solr-Server als Slave konfiguriert ist. Konfigurieren Sie den Master (HMC/Management-Backoffice-Kontrollkästchen "Master ausschließlich für die Indizierung verwenden"), um nur als Indexer ausgeführt zu werden. Dadurch wird verhindert, dass Hybris Commerce auf dem Master sucht. Führen Sie anschließend einen vollständigen Index aus, um sicherzustellen, dass alle Slaves auf dem neuesten Stand sind.

Das Master/Slave-Solr-Cluster-Setup Hybris Commerce sendet Indizierungsjobs an den Master (Phase 1), und wenn sie abgeschlossen sind, stellt es eine Verbindung zu jedem Slave her und zwingt es zum Herunterladen und Anwenden des vollständigen Index (Phase 2) vom Master in einem zweiphasigen Betrieb. Diese Konfiguration isoliert die Indizierung fast vollständig von der Suchlast. Zusätzlich zur Verfügbarkeit der fortlaufenden Suche bietet dies die Möglichkeit, den Master vertikal zu skalieren, um die Indizierung zu bewältigen, während die Slaves horizontal skaliert werden können, um die Suchlast zu bewältigen.