Sto cercando di creare un lucene di circa 2 milioni di record. Il tempo di indicizzazione è di circa 9 ore. Potresti suggerire come aumentare le prestazioni?Procedura: Aumentare la velocità di indicizzazione di Lucene .net
risposta
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
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.
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).
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.
- 1. Indicizzazione di bigram di token in Lucene
- 2. Come aumentare la velocità di deserializzazione?
- 3. Come posso aumentare la velocità di scorrimento?
- 4. Come aumentare la velocità dell'emulatore?
- 5. Lucene indicizzazione in tempo reale?
- 6. Come aumentare la velocità di caricamento del DTD attraverso DOCTYPE
- 7. Come configurare Solr per una migliore velocità di indicizzazione
- 8. Come aumentare la velocità di apprendimento di Zend Framework?
- 9. Come aumentare la velocità di scorrimento di UIWebView?
- 10. Come aumentare la velocità per caricare un'attività?
- 11. Un modo per aumentare la velocità di avvio JVM?
- 12. Come aumentare la velocità di rotazione in Android?
- 13. Come posso aumentare la velocità della mia istruzione select Postgres?
- 14. Bluetooth LE, scanForPeripheralsWithServices in background, aumentare la velocità
- 15. Come posso aumentare la dimensione dell'heap .NET?
- 16. La crittografia/decodifica di file Android AES-128 è molto lenta. Come posso aumentare la velocità
- 17. Come aumentare la ricerca in base al tipo di indice in elasticsearch o lucene?
- 18. Come aumentare il periodo di timeout per la chiamata alla procedura memorizzata (vedere errore)?
- 19. dinamicamente aumentare/diminuire la velocità di un video in un'applicazione Windows Form
- 20. Come posso migliorare la velocità di download di scrapy?
- 21. Migliorare la velocità di elaborazione delle immagini
- 22. ElasticSearch - throughput di indicizzazione elevata
- 23. Riparazione/indicizzazione di grandi tabelle e myisam_sort_buffer_size
- 24. Mostra il contenuto dell'indice di Lucene
- 25. Utilizzo di Apache Lucene per la ricerca
- 26. Come funziona la velocità di mod di CheatEngine?
- 27. Indicizzazione spaziale
- 28. Aumentare il timeout SQL in .net
- 29. Come utilizzare TermVector Lucene 4.0
- 30. Come ottimizzare la velocità di costruzione in Visual Studio 2008
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