2010-09-27 15 views
11

muszę uzyskać dostęp do indeksu Lucene (utworzony przez indeksowania kilka stron internetowych za pomocą siatkowe), ale daje pokazany błąd powyżej:żadne segmenty plik * znaleziono

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) 

google ale z powodów podanych nie pasujący do wymagania. Fakt, że pliki są wyświetlane (ścieżka) prawdopodobnie oznacza, że ​​katalog nie jest pusty.
Dzięki

Odpowiedz

7

Zasadniczo komunikat o błędzie mówi, że Lucene nie znalazł odpowiednich plików w katalogu indeksu. Sugeruję sprawdzenie następującego:

  1. Sprawdź, czy ścieżka do katalogu indeksu pasuje do tego, co Twoim zdaniem powinno być.
  2. Czy używane wersje Nutch i Lucene są zgodne? Może to wynikać z różnicy wersji.
  3. Czy istnieje problem uprawnień? Czy umiesz czytać pliki w katalogu?
  4. Spróbuj spojrzeć na indeks, używając Luke. Jeśli nie możesz, prawdopodobnie istnieje pewne uszkodzenie w indeksie.

Jeśli to wszystko nie pomoże, opublikuj indeksującą część kodu.

+0

Zrobiłem wszystkie z nich oprócz wersji Nutch i Lucene. Nie wiedziałem, że musi istnieć kompatybilność między Lucene i Nutch. Jeśli to pomaga, wersja luceńska ma 2.2. Mogę uzyskać dostęp do plików. W rzeczywistości, uruchamiam program java w tym samym katalogu co indeks. Ponadto sprawdziłem indeks używając Luke'a i jego zdecydowanie w porządku. Poza tym po prostu stałem się częścią projektu. Indeks jest wynikiem obszernego indeksowania przez Nutch. Więc nie mam żadnego kodu indeksującego. To było tylko czołganie się. Ale nadal będę próbował znaleźć dokładny obraz. – crazyaboutliv

+0

Jedną z rzeczy, którą zauważyłem jest to, że nowsza wersja Nutch (1.1) generuje 5 folderów po przeszukiwaniu, podczas gdy dane, które mam, mają tylko 4 (z których segmentów jest jeden) foldery. Czy to może być problem? – crazyaboutliv

+0

Tak jak powiedział Yuval, upewnij się, że program Java, którego używasz do odczytu indeksu, używa tej samej wersji Lucene, którą Nutch użył do utworzenia indeksu. –

15

Kolejna wskazówka, ponieważ miałem ten sam błąd i odkryłem, że po utworzeniu indeksów nie zamknąłem IndexWriter i okazało się, że jest bardzo niewybaczalne. W moim katalogu indeksowym mam kilka plików .lock i żadnych segmentów ani plików segment.gen, których szuka czytelnik. Zobacz here # 3 dla szczegółów

+0

Tylko dla tych, którzy zastanawiają się (tak jak ja): Nawet jeśli zamkniesz IndexWriter, plik 'write.lock' nadal będzie istnieć w twoim folderze. Więc nie przejmuj się, jeśli ten plik nie zostanie usunięty. – Munchkin

+0

To rozwiązało to dla mnie, dzięki. – Harry

Powiązane problemy