2016-04-10 8 views
0

Ich habe große Daten in einer SQL-Datenbank gespeichert, die ständig aktualisiert wird. Ich brauche den besten Weg zu finden, Solr-Index zu aktualisieren, stellt fest, dass ich habe zu viel Tabelle (n) Beziehungen, zum Beispiel Produkt, Produktbeschreibung, ProductStocks ... etc.SOLR DIH delta import vs Update

Es scheint für diesen zwei Lösung zu sein:

1) DIH deltaQueryImport - Abfragen der Datenbank nach allen Datensätzen, die LastUpdated größer als last_index_time haben, und Importieren dieser Datensätze für die Indizierung nach Solr. Die DIH wird alle 30 Minuten terminiert und die Daten während der Planung werden ebenfalls nicht berücksichtigt Aufgrund der Anzahl der aktualisierten Datensätze wird viel Zeit für Abfragen benötigt.

2) Aufgabenwarteschlange - Jedes Mal, wenn ein Produkt in der Datenbank aktualisiert wird, stellen wir eine Aufgabe zur Indizierung dieses Eintrags in Solr.

Wollen Sie nur Ihre Empfehlung und die Vor- und Nachteile jedes Ansatzes wissen?

Antwort

0

Ich arbeitete an einem Projekt mit ähnlichem Szenario. Wir beschließen, Ihre 2. Lösung zu implementieren. Push ist vorzuziehen als Pull-Lösung. Mit Push-Lösung können Sie fast Echtzeit-Update erreichen, in der Regel ist dies ein großes Plus für Unternehmen.

Aber mit dieser Lösung, müssen Sie Folgendes berücksichtigen:

  1. Batch Anfangslast.
  2. Größe der Warteschlange, wenn Sie eine Stapelaktualisierung haben.