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;
			}
Beispiel #3
0
 public override System.Collections.ICollection GetFieldNames(IndexReader.FieldOption fieldNames)
 {
     EnsureOpen();
     return(MultiSegmentReader.GetFieldNames(fieldNames, this.subReaders));
 }
Beispiel #4
0
 private int ReaderIndex(int n)
 {
     // find reader for doc n:
     return(MultiSegmentReader.ReaderIndex(n, this.starts, this.subReaders.Length));
 }