Hi all,

I have a client who has what appears to be a corrupted Lucene index.  When
they try and openthe index they get:

java.lang.IndexOutOfBoundsException: Index: 9634, Size: 97

        at java.util.ArrayList.rangeCheck(ArrayList.java:638)

        at java.util.ArrayList.get(ArrayList.java:414)

        at org.apache.lucene.index.FieldInfos.fieldInfo(FieldInfos.java:255)

        at org.apache.lucene.index.FieldInfos.fieldName(FieldInfos.java:244)

        at org.apache.lucene.index.TermBuffer.read(TermBuffer.java:86)

        at 
org.apache.lucene.index.SegmentTermEnum.next(SegmentTermEnum.java:133)

        at 
org.apache.lucene.index.TermInfosReaderIndex.<init>(TermInfosReaderIndex.java:76)

        at 
org.apache.lucene.index.TermInfosReader.<init>(TermInfosReader.java:116)

        at 
org.apache.lucene.index.SegmentCoreReaders.<init>(SegmentCoreReaders.java:83)

        at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:116)

        at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:94)

        at 
org.apache.lucene.index.DirectoryReader.<init>(DirectoryReader.java:105)

        at 
org.apache.lucene.index.ReadOnlyDirectoryReader.<init>(ReadOnlyDirectoryReader.java:27)

        at 
org.apache.lucene.index.DirectoryReader$1.doBody(DirectoryReader.java:78)

        at 
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:709)

        at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:72)

        at org.apache.lucene.index.IndexReader.open(IndexReader.java:256)


Running CheckIndex didn't seem to really help:


NOTE: testing will be more thorough if you run java with
'-ea:org.apache.lucene...', so assertions are enabled

Opening index @ C:\Issue\TextIndex

Segments file=segments_2 numSegments=1 version=3.6.2 format=FORMAT_3_1
[Lucene 3.1+]
1 of 1: name=_64 docCount=1764481
compound=false
hasProx=true
numFiles=10
size (MB)=119.050,043
diagnostics = {os=Windows Server 2012, java.vendor=Oracle Corporation, java.
version=1.8.0_05, lucene.version=3.6.2-SNAPSHOT - 2014-01-16 16:14:14, mergeMaxN
umSegments=1, os.arch=amd64, source=merge, mergeFactor=20, os.version=6.2}
no deletions
test: open reader.........FAILED
WARNING: fixIndex() would remove reference to this segment; full exception:
java.lang.IndexOutOfBoundsException: Index: 9634, Size: 97
at java.util.ArrayList.rangeCheck(ArrayList.java:638)
at java.util.ArrayList.get(ArrayList.java:414)
at org.apache.lucene.index.FieldInfos.fieldInfo(FieldInfos.java:255)
at org.apache.lucene.index.FieldInfos.fieldName(FieldInfos.java:244)
at org.apache.lucene.index.TermBuffer.read(TermBuffer.java:86)
at org.apache.lucene.index.SegmentTermEnum.next(SegmentTermEnum.java:133)
at 
org.apache.lucene.index.TermInfosReaderIndex.<init>(TermInfosReaderIndex.java:76)
at org.apache.lucene.index.TermInfosReader.<init>(TermInfosReader.java:116)
at org.apache.lucene.index.SegmentCoreReaders.<init>(SegmentCoreReaders.java:83)
at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:116)
at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:94)
at org.apache.lucene.index.CheckIndex.checkIndex(CheckIndex.java:523)
at org.apache.lucene.index.CheckIndex.main(CheckIndex.java:1064)

WARNING: 1 broken segments (containing 1764481 documents) detected
WARNING: 1764481 documents will be lost

NOTE: will write new segments file in 5 seconds; this will remove 1764481 docs f
rom the index. THIS IS YOUR LAST CHANCE TO CTRL+C!
5...
4...
3...
2...
1...
Writing...
OK
Wrote new segments file "segments_3"


Are there any approaches to try and repair this index?  It is 120 GB in
size and there are no backups.. :-/

Cheers,
David

Reply via email to