2012-04-03 5 views
3

Ich habe gerade Solr auf meiner Rails-Anwendung installiert (mit Sonnenflecken).Solr - Reindex empfohlene Losgröße

Ich möchte solr um ein paar Spalten auf einer meiner Tabellen neu indizieren, die Tabellen sind ziemlich groß (~ 50M Datensätze).

Was ist die empfohlene Chargengröße zu verwenden? Derzeit benutze ich 1000 und es läuft über einen Tag.

Irgendwelche Ideen?

Antwort

2

Die Batch-Größe ist nicht so wichtig, 1000 ist wahrscheinlich in Ordnung, obwohl ich nicht größer als das gehen würde. Es hängt von der Größe der Dokumente ab, wie viele Byte Text für jeden Index indiziert sind.

Begehen Sie nach jeder Charge? Das kann langsam sein. Ich lade am Ende einen 23M Dokumentenindex mit einem einzigen Commit. Die Dokumente sind klein, die Metadaten für Bücher, und es dauert etwa 90 Minuten. Um diese Geschwindigkeit zu erreichen, musste ich eine einzige SQL-Abfrage für die Auslastung verwenden. Durch die Verwendung von Unterabfragen ist es etwa 10 Mal langsamer geworden.

Ich benutze die JDBC-Unterstützung in der DataInputHandler, obwohl ich möglicherweise zu einigen benutzerdefinierten Code, der eine DB-Abfrage macht und sendet Stapel bewegt.

Ich habe gehört, dass der CSV-Eingabe-Handler sehr effizient ist, also könnte es funktionieren, Ihre Daten in CSV abzulegen und dann mit diesem Handler zu laden.