2009-06-27 12 views

risposta

0

Il modo più semplice per migliorare le prestazioni dell'indicizzazione di Lucene è regolare il valore della variabile di istanza mergeFactor di IndexWriter. Questo valore indica a Lucene quanti documenti memorizzare in memoria prima di scriverli sul disco, nonché quanto spesso unire più segmenti insieme.

http://search-lucene.blogspot.com/2008/08/indexing-speed-factors.html

3

ho scritto un terribile post su come parallelizzare un indice Lucene. È scritto davvero terribilmente, ma lo troverai here (c'è qualche codice di esempio che potresti voler vedere).

In ogni caso, l'idea principale è quella di ridimensionare i dati in pezzi considerevoli e quindi lavorare su ognuno di questi pezzi su un thread separato. Quando tutti i pezzi sono terminati, li unisci tutti in un unico indice.

Con l'approccio sopra descritto, sono in grado di indicizzare 4+ milioni di record in ca. 2 ore.

Spero che questo ti dia un'idea di dove andare da qui.

+0

Ciao Esteban Grazie per la risposta. Sto cercando qualcosa di simile a quello che hai fatto. Potresti pubblicare alcuni frammenti di codice nel tuo blog. Grazie, Gokul – Gokul

1

Oltre al lato di scrittura (fattore di unione) e l'aspetto di calcolo (parallelizzazione), questo è a volte dovuto ai motivi più semplici: input lento. Molte persone costruiscono un indice Lucene da un database di dati. A volte si scopre che una particolare query per questi dati è troppo complicata e lenta per restituire tutti i record (2 milioni?) Rapidamente. Prova solo la query e scrivendo su disco, se è ancora nell'ordine di 5-9 ore, hai trovato un posto per ottimizzare (SQL).

1

Il seguente articolo mi ha davvero aiutato quando avevo bisogno di accelerare le cose:

http://wiki.apache.org/lucene-java/ImproveIndexingSpeed

ho trovato che la costruzione del documento è stato il nostro principale collo di bottiglia. Dopo aver ottimizzato l'accesso ai dati e implementato alcune delle altre raccomandazioni, sono stato in grado di aumentare sostanzialmente le prestazioni di indicizzazione.

Problemi correlati