protected internal override object DoBody(System.String segmentFileName) { SegmentInfos infos = new SegmentInfos(); infos.Read(directory, segmentFileName); DirectoryIndexReader reader; if (infos.Count == 1) { // index is optimized reader = SegmentReader.Get(readOnly, infos, infos.Info(0), closeDirectory); } else if (readOnly) { reader = new ReadOnlyMultiSegmentReader(directory, infos, closeDirectory); } else { reader = new MultiSegmentReader(directory, infos, closeDirectory, false); } reader.SetDeletionPolicy(deletionPolicy); return(reader); }
protected internal override System.Object DoBody(System.String segmentFileName) { SegmentInfos infos = new SegmentInfos(); infos.Read(directory, segmentFileName); DirectoryIndexReader reader; if (infos.Count == 1) { // index is optimized reader = SegmentReader.Get(infos, infos.Info(0), closeDirectory); } else { reader = new MultiSegmentReader(directory, infos, closeDirectory); } reader.SetDeletionPolicy(deletionPolicy); return reader; }
public override System.Collections.ICollection GetFieldNames(IndexReader.FieldOption fieldNames) { EnsureOpen(); return(MultiSegmentReader.GetFieldNames(fieldNames, this.subReaders)); }
private int ReaderIndex(int n) { // find reader for doc n: return(MultiSegmentReader.ReaderIndex(n, this.starts, this.subReaders.Length)); }