org.apache.lucene.index.IndexNotFoundException: no segments* file found in org.apache.lucene.store.RAMDirectory

java, lucene, netbeans

Solution

before open the index by using a reader, call once `writer.commit()`

Problem

I am new to Java and Lucene. My code gets a line from a file and stores it in Lucene Index. But when I create an `IndexReader` to search and read from the index it throws an exception. My java code is below. On creating the `IndexReader` it throws an `IndexNotFoundException` ``` static String itemsfreq[]; static StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_35); static IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_35, analyzer); public static void index_data(Directory indexed_document,int doc_num,IndexWriter w) throws IOException { for(int i = 0;i < itemsfreq.length;i++) { Document doc = new Document(); doc.add(new Field(Integer.toString(doc_num)+","+itemsfreq[i],itemsfreq[i++], Field.Store.YES, Field.Index.ANALYZED)); w.addDocument(doc); } } //Gets string from a file and insert it in INDEX named indexed_document public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new FileReader("fullText100.txt")); String line; int i = 0; Directory indexed_document = new RAMDirectory(); IndexWriter writer = new IndexWriter(indexed_document, config); while((line=reader.readLine()) != null) { if(i == 1) { break; } itemsfreq = line.split(" "); index_data(indexed_document,i,writer); i++; } IndexReader r = IndexReader.open(indexed_document); } ```

Original source