Ich schrieb eine kleine Schleife, die 10.000 Dokumente in den IndexWriter hinzugefügt und es dauerte für immer, es zu tun.Lucene IndexWriter langsam, um Dokumente hinzuzufügen
Gibt es eine andere Möglichkeit, große Mengen von Dokumenten zu indizieren?
Ich frage, denn wenn es live geht, muss es 15.000 Datensätze laden.
Die andere Frage ist, wie verhindere ich, dass alle Datensätze erneut geladen werden müssen, wenn die Webanwendung neu gestartet wird?
bearbeiten
Hier ist der Code i verwendet wird;
for (int t = 0; t < 10000; t++){
doc = new Document();
text = "Value" + t.toString();
doc.Add(new Field("Value", text, Field.Store.YES, Field.Index.TOKENIZED));
iwriter.AddDocument(doc);
};
bearbeiten 2
Analyzer analyzer = new StandardAnalyzer();
Directory directory = new RAMDirectory();
IndexWriter iwriter = new IndexWriter(directory, analyzer, true);
iwriter.SetMaxFieldLength(25000);
dann der Code die Dokumente hinzufügen, dann;
iwriter.Close();
Wie lange war für immer? –
dauerte es etwa 2,5 bis 3 Minuten. Ist das zu erwarten? – griegs
Ich sollte hinzufügen, dass die Dokumente ein einzelnes Feld enthielten und dass das Feld "Wert" + t.toString() als Wert hatte. So sehr klein – griegs