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.