2010-09-27 2 views
11

ho bisogno di accedere ad un indice di Lucene (creato da strisciando diverse pagine web utilizzando Nutch), ma sta dando l'errore indicato sopra:nessun segmento * file trovato

java.io.FileNotFoundException: no segments* file found in [email protected]/home/<path>: files: 
    at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:516) 
    at org.apache.lucene.index.IndexReader.open(IndexReader.java:185) 
    at org.apache.lucene.index.IndexReader.open(IndexReader.java:148) 
    at DictionaryGenerator.generateDict(DictionaryGenerator.java:24) 
    at DictionaryGenerator.main(DictionaryGenerator.java:56) 

I googled ma le motivazioni addotte non erano corrispondenti al requisiti. Il fatto che i file vengano visualizzati (il percorso) probabilmente significa che la directory non è vuota.
Grazie

risposta

7

In sostanza, il messaggio di errore dice che Lucene non ha trovato i file appropriati nella directory dell'indice. Suggerisco di verificare quanto segue:

  1. Verificare che il percorso della directory dell'indice corrisponda a ciò che si ritiene dovrebbe essere.
  2. Le versioni Nutch e Lucene utilizzate corrispondono? Questo potrebbe derivare da una differenza di versione.
  3. Esiste un problema di autorizzazioni? Puoi leggere i file nella directory?
  4. Prova a guardare l'indice utilizzando Luke. Se non ci riesci, probabilmente c'è un po 'di corruzione nell'indice.

Se tutti questi non aiutano, si prega di inviare la parte indicizzazione del codice.

+0

Ho fatto tutti loro tranne le versioni Nutch e Lucene. Non ero a conoscenza che ci deve essere una compatibilità tra Lucene e Nutch. Se aiuta, la versione di lucene è 2.2. Posso accedere ai file. Infatti, sto eseguendo il programma java nella stessa directory dell'indice. Inoltre, ho controllato l'indice usando Luke ed è decisamente buono. Inoltre, il fatto è che sono appena diventato parte del progetto. L'indice è il risultato di una lunga ricerca di Nutch. Quindi, non ho alcun codice di indicizzazione. Era solo una scansione. Ma tenterò ancora di scoprire l'immagine esatta. – crazyaboutliv

+0

Una cosa che ho osservato è che la nuova versione di Nutch (1.1) genera 5 cartelle dopo una ricerca per indicizzazione mentre i dati che ho hanno solo 4 cartelle (di cui segmenti è una). Può essere un problema? – crazyaboutliv

+0

Come ha detto Yuval, assicurati che il programma Java che usi per leggere l'indice usi la stessa versione di Lucene utilizzata da Nutch per creare l'indice. –

15

Un altro suggerimento, poiché stavo avendo lo stesso errore e ho scoperto che dopo aver creato gli indici non chiudevo IndexWriter e si dimostrò molto imperdonabile. Nella mia indexdirectory ho alcuni file .lock e nessun segmento o file segments.gen che è quello che Reader sta cercando. Vedere here # 3 per dettagli

+0

Solo per quelli che si stanno chiedendo (come ho fatto io): Anche se chiudi IndexWriter, il file 'write.lock' sarà ancora presente nella tua cartella. Quindi non importa se questo file non viene cancellato. – Munchkin

+0

Questo l'ha risolto per me, grazie. – Harry