Hello, I'm using Lucene 2.3.2 and had no problems untill now.
But now I got an corrupt index. When searching, a java.lang.OutOfMemoryError is thrown. I've wrote the following test program: private static void search(String index, String query) throws CorruptIndexException, IOException, ParseException { IndexReader reader = IndexReader.open(index); //reader.setTermInfosIndexDivisor(10); Collection col = Reader.getFieldNames(IndexReader.FieldOption.INDEXED); Iterator it = col.iterator(); String[] fields = new String[col.size()]; int i = 0; while(it.hasNext()) { fields[i] = (String)it.next(); System.out.println("field["+i+"]: "+fields[i]); i++; } Analyzer analyzer = new StandardAnalyzer(); MultiFieldQueryParser parser = new MultiFieldQueryParser(fields, analyzer); parser.setAllowLeadingWildcard(true); Query quer = parser.parse(query); System.out.println("Query: "+quer.toString()); quer = quer.rewrite(reader); System.out.println("rewritten Query: "+quer.toString()); reader.close(); } If reader.setTermInfosIndexDivisor() is commented out, the stacktrace looks like this: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at org.apache.lucene.index.TermInfosReader.ensureIndexIsRead(TermInfosReader.java:155) at org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:202) at org.apache.lucene.index.TermInfosReader.terms(TermInfosReader.java:277) at org.apache.lucene.index.SegmentReader.terms(SegmentReader.java:643) at org.apache.lucene.search.PrefixQuery.rewrite(PrefixQuery.java:42) at org.apache.lucene.search.BooleanQuery.rewrite(BooleanQuery.java:385) at diplom.lucene.Index.search(Index.java:59) at diplom.lucene.Index.main(Index.java:28) The index has a size of 59 MB, so it is weird to get an OutOfMemoryException. So with reader.setTermInfosIndexDivisor() set to 10, the stacktrace looks like: java.lang.IndexOutOfBoundsException: Index: 103, Size: 54 at java.util.ArrayList.RangeCheck(ArrayList.java:547) at java.util.ArrayList.get(ArrayList.java:322) at org.apache.lucene.index.FieldInfos.fieldInfo(FieldInfos.java:260) at org.apache.lucene.index.FieldInfos.fieldName(FieldInfos.java:249) at org.apache.lucene.index.TermBuffer.read(TermBuffer.java:68) at org.apache.lucene.index.SegmentTermEnum.next(SegmentTermEnum.java:123) at org.apache.lucene.index.TermInfosReader.ensureIndexIsRead(TermInfosReader.java:159) at org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:202) at org.apache.lucene.index.TermInfosReader.terms(TermInfosReader.java:277) at org.apache.lucene.index.SegmentReader.terms(SegmentReader.java:643) at org.apache.lucene.search.PrefixQuery.rewrite(PrefixQuery.java:42) at org.apache.lucene.search.BooleanQuery.rewrite(BooleanQuery.java:385) at diplom.lucene.Index.search(Index.java:59) at diplom.lucene.Index.main(Index.java:28) CheckIndex prints the following: Segments file=segments_1zrx5 numSegments=1 version=FORMAT_SHARED_DOC_STORE [Lucene 2.3] 1 of 1: name=_5pa8 docCount=117378 compound=true numFiles=1 size (MB)=57,573 no deletions test: open reader.........OK test: fields, norms.......OK [54 fields] test: terms, freq, prox...FAILED WARNING: would remove reference to this segment (-fix was not specified); full exception: java.lang.IndexOutOfBoundsException: Index: 110, Size: 54 at java.util.ArrayList.RangeCheck(ArrayList.java:547) at java.util.ArrayList.get(ArrayList.java:322) at org.apache.lucene.index.FieldInfos.fieldInfo(FieldInfos.java:260) at org.apache.lucene.index.FieldInfos.fieldName(FieldInfos.java:249) at org.apache.lucene.index.TermBuffer.read(TermBuffer.java:68) at org.apache.lucene.index.SegmentTermEnum.next(SegmentTermEnum.java:123) at org.apache.lucene.index.CheckIndex.check(CheckIndex.java:182) at diplom.lucene.Index.check(Index.java:67) at diplom.lucene.Index.main(Index.java:28) WARNING: 1 broken segments detected WARNING: 117378 documents would be lost if -fix were specified NOTE: would write new segments file [-fix was not specified] Index correct: false Recreating the index didn't solve the problem. And I have no idea for solving it, so every help is greatly appreciated. Thanks in advance. Rene -- Aufgepasst: Sind Ihre Daten beim Online-Banking auch optimal geschützt? Jetzt absichern: https://homebanking.gmx.net/?mc=m...@footer.hb --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org