Apache Lucene no segments* file found Hatası
no segments* file found in org.apache.lucene.store.SimpleFSDirectory..
diye giden bir hata IndexWriter nesnesi yaratılırken ortaya cikabilir. Sebebi Lucene’e olusturacağı indexleri saklayacağı dizini verirken, dizinin zaten var olması ya da dizin var olsa bile icinde indexlerin tutuldugu ikili(binary) dosyaların mevcut olmamasıdır. Bunun icin asagidaki gibi bir cozum kullanılabilir:
// boolean false parametresi, her acilista var olan index’in ustune yazilmasini engeller.
boolean resetIndexes = true;
File indexFile = new File(indexDir);if(indexFile.exists()){
resetIndexes = false;
}
FSDirectory dir = FSDirectory.open(new File(indexDir));
writer = new IndexWriter(dir, new StandardAnalyzer(Version.LUCENE_CURRENT),
resetIndexes, IndexWriter.MaxFieldLength.LIMITED);
Yukarıdaki çözümde, Lucene’e index klasoru varsa, varolan indexlerin üstüne yazmaması icin “resetIndexes” boolean degeri false verilir. Şayet sistemde index klasorumuz henüz yaratılmamışsa da “resetIndexes” degeri bu sefer true verilerek yeni baştan indexleri oluşturması sağlanır.

bir yorum yazın