lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From JulieSoko <julie.sokolow...@saic.com>
Subject No segment files found/ Searcher error
Date Mon, 03 Nov 2008 16:07:52 GMT

I am narrowing down this problem that I have had for a week now...   I am
using lucene version 2.3.1 and 64 bit java versio 1.5.0-12-b04 running on 
Linux box.  We are merging indexes every 60 seconds and there are 1..*
searches occuring at anytime on the indexes.  The problem is that we will
get an Input /Output error trying to read the index for a search randomly...
say every 5th search.  I have posted the error before, but have narrowed it
down, I believe, to a merge issue.  

This is the error that a searcher will output at random times:
 java.io.IOException: Input/output error
 java.io.RandomAccessFile.readBytes(Native Method)
 java.io.RandomAccessFile.read(RandomAccessFile.java:315)
 at
org.apache.lucene.store.FSDirecotry$FSIndexInput.readInternal(FSDirectory.java:550)
 at
org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedInputInput.java:131)
 at
org.apache.lucene.index.CompoundFileReader$CSIndexInput.readInternal(CompoundFileReader.java:240)
at
org.apache.lucene.instoreBufferedIndexInput.refill(BufferedIndexInput.java:
152)
at
org.apache.lucene.instoreBufferedIndexInput.readByte(BufferedIndexInput.java:
152)
at org.lucene.store.IndexInput.readVInt(IndexInput.java:76)
at org.apache.lucene.index.TermBuffer.read(TermBuffer.java:63)
at org.apache.lucene.index.SegmentTermEnum.next(SegmentTermEnum.java:123)
at org.apache.lucene.index.SegmentTermEnum.scanTo(SegmentTermEnum.java:154)
at
org.apache.lucene.index.TermInfosReader.scanEnum(TermInfosReader.java:223)
at org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:217)
at org.apache.lucene.index.SegmentReader.docFreq(SegmentReader.java:678)
at org.apache.lucene.search.IndexSearcher.docFreq(IndexSearcher.java:87)
at org.apache.lucene.search.Searcher.docFreqs(searcher.java:118)
at
org.apache.lucene.search.MultiSearcher.createWeight(MultiSearcher.java:311)
at org.apache.lucene.search.Searcher.search(Searcher.java:178) 


******************************************************************************
NOW, when I get the above Exception, I check the index using the
CheckIndex.check method... As part of the check , this exception is thrown:


Error: could not read any segments file in directory
java.io.FileNotFoundException: no segments* file found in
org.apache.lucen.store.FSDirectory@appfs/rt10/jetty/20081103 
    at
org.apache.lucene.index.SegmentInfos$findSegmentsFile.run(SegementInfos.java:587)
 .....

Is there any point in the merging of indexes that the segment files are
removed?   If I rerun the search, right after this error occurs, the search
is ok... I do open a new IndexSearcher...   

The IndexWriter code is this:
   IndexWriter combinedWriter = new IndexWriter(currentMergeDir, new
StandardAnalyzer());
   combinedWriter.addIndexes(dirToMerge);
   combinedWriter.flush();
   combinedWriter.close();


As you can see above, each time there is a merge a new IndexWriter is
created, indexes added, flushed and closed.
I know you are not supposed to have synchronization issues between writing
and flushing , but could there be an issue when you are creating a new
searcher at the instant where the files are merged and there are no segments
in a dir???

Thanks,
Julie








-- 
View this message in context: http://www.nabble.com/No-segment-files-found--Searcher-error-tp20305354p20305354.html
Sent from the Lucene - Java Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message