Beispiel #1
0
 /// <summary>
 /// Constructor which takes segment suffix.
 /// </summary>
 /// <seealso cref="SegmentWriteState(InfoStream, Directory, SegmentInfo, FieldInfos, int,
 ///      BufferedUpdates, IOContext)"/>
 public SegmentWriteState(InfoStream infoStream, Directory directory, SegmentInfo segmentInfo, FieldInfos fieldInfos, int termIndexInterval, BufferedUpdates segUpdates, IOContext context, string segmentSuffix)
 {
     this.InfoStream        = infoStream;
     this.SegUpdates        = segUpdates;
     this.Directory         = directory;
     this.SegmentInfo       = segmentInfo;
     this.FieldInfos        = fieldInfos;
     this.TermIndexInterval = termIndexInterval;
     this.SegmentSuffix     = segmentSuffix;
     this.Context           = context;
 }
Beispiel #2
0
 /// <summary>
 /// Create a shallow copy of <see cref="SegmentWriteState"/> with a new segment suffix. </summary>
 public SegmentWriteState(SegmentWriteState state, string segmentSuffix)
 {
     InfoStream         = state.InfoStream;
     Directory          = state.Directory;
     SegmentInfo        = state.SegmentInfo;
     FieldInfos         = state.FieldInfos;
     TermIndexInterval  = state.TermIndexInterval;
     Context            = state.Context;
     this.SegmentSuffix = segmentSuffix;
     SegUpdates         = state.SegUpdates;
     DelCountOnFlush    = state.DelCountOnFlush;
 }
Beispiel #3
0
        /// <summary>
        /// Save a single segment's info. </summary>
        public override void Write(Directory dir, SegmentInfo si, FieldInfos fis, IOContext ioContext)
        {
            string fileName = IndexFileNames.SegmentFileName(si.Name, "", Lucene46SegmentInfoFormat.SI_EXTENSION);

            si.AddFile(fileName);

            IndexOutput output = dir.CreateOutput(fileName, ioContext);

            bool success = false;

            try
            {
                CodecUtil.WriteHeader(output, Lucene46SegmentInfoFormat.CODEC_NAME, Lucene46SegmentInfoFormat.VERSION_CURRENT);
                // Write the Lucene version that created this segment, since 3.1
                output.WriteString(si.Version);
                output.WriteInt32(si.DocCount);

                output.WriteByte((byte)(sbyte)(si.UseCompoundFile ? SegmentInfo.YES : SegmentInfo.NO));
                output.WriteStringStringMap(si.Diagnostics);
                output.WriteStringSet(si.GetFiles());
                CodecUtil.WriteFooter(output);
                success = true;
            }
            finally
            {
                if (!success)
                {
                    IOUtils.DisposeWhileHandlingException(output);
                    si.Dir.DeleteFile(fileName);
                }
                else
                {
                    output.Dispose();
                }
            }
        }
Beispiel #4
0
 /// <summary>
 /// Returns a <see cref="StoredFieldsReader"/> to load stored
 /// fields.
 /// </summary>
 public abstract StoredFieldsReader FieldsReader(Directory directory, SegmentInfo si, FieldInfos fn, IOContext context);
Beispiel #5
0
 /// <summary>
 /// Writes the provided <see cref="FieldInfos"/> to the
 /// directory.
 /// </summary>
 public abstract void Write(Directory directory, string segmentName, string segmentSuffix, FieldInfos infos, IOContext context);
Beispiel #6
0
 public override StoredFieldsWriter FieldsWriter(Directory directory, SegmentInfo si, IOContext context)
 {
     return(new CompressingStoredFieldsWriter(directory, si, segmentSuffix, context, formatName, compressionMode, chunkSize));
 }
Beispiel #7
0
 public override StoredFieldsReader FieldsReader(Directory directory, SegmentInfo si, FieldInfos fn, IOContext context)
 {
     return(new CompressingStoredFieldsReader(directory, si, segmentSuffix, fn, context, formatName, compressionMode));
 }
Beispiel #8
0
 /// <summary>
 /// Returns a <see cref="TermVectorsWriter"/> to write term
 /// vectors.
 /// </summary>
 public abstract TermVectorsWriter VectorsWriter(Directory directory, SegmentInfo segmentInfo, IOContext context);
Beispiel #9
0
 /// <summary>
 /// Read the <see cref="FieldInfos"/> previously written with
 /// <see cref="FieldInfosWriter"/>.
 /// </summary>
 public abstract FieldInfos Read(Directory directory, string segmentName, string segmentSuffix, IOContext iocontext);
 public override StoredFieldsReader FieldsReader(Directory directory, SegmentInfo si, FieldInfos fn, IOContext context)
 {
     return(new Lucene40StoredFieldsReader(directory, si, fn, context));
 }
Beispiel #11
0
 /// <summary>
 /// Create a <see cref="SegmentReadState"/>. </summary>
 public SegmentReadState(Directory dir, SegmentInfo info, FieldInfos fieldInfos, IOContext context, int termsIndexDivisor, string segmentSuffix)
 {
     this.Directory         = dir;
     this.SegmentInfo       = info;
     this.FieldInfos        = fieldInfos;
     this.Context           = context;
     this.TermsIndexDivisor = termsIndexDivisor;
     this.SegmentSuffix     = segmentSuffix;
 }
Beispiel #12
0
 /// <summary>
 /// Create a <see cref="SegmentReadState"/>. </summary>
 public SegmentReadState(Directory dir, SegmentInfo info, FieldInfos fieldInfos, IOContext context, int termsIndexDivisor)
     : this(dir, info, fieldInfos, context, termsIndexDivisor, "")
 {
 }
Beispiel #13
0
 /// <summary>
 /// Sole constructor. </summary>
 public SegmentWriteState(InfoStream infoStream, Directory directory, SegmentInfo segmentInfo, FieldInfos fieldInfos, int termIndexInterval, BufferedUpdates segUpdates, IOContext context)
     : this(infoStream, directory, segmentInfo, fieldInfos, termIndexInterval, segUpdates, context, "")
 {
 }
 public override TermVectorsWriter VectorsWriter(Directory directory, SegmentInfo segmentInfo, IOContext context)
 {
     return(new Lucene40TermVectorsWriter(directory, segmentInfo.Name, context));
 }
 public override TermVectorsReader VectorsReader(Directory directory, SegmentInfo segmentInfo, FieldInfos fieldInfos, IOContext context)
 {
     return(new Lucene40TermVectorsReader(directory, segmentInfo, fieldInfos, context));
 }
Beispiel #16
0
 /// <summary>
 /// Returns a <see cref="StoredFieldsWriter"/> to write stored
 /// fields.
 /// </summary>
 public abstract StoredFieldsWriter FieldsWriter(Directory directory, SegmentInfo si, IOContext context);
Beispiel #17
0
 /// <summary>
 /// Write <see cref="SegmentInfo"/> data. </summary>
 /// <exception cref="System.IO.IOException"> If an I/O error occurs. </exception>
 public abstract void Write(Directory dir, SegmentInfo info, FieldInfos fis, IOContext ioContext);
Beispiel #18
0
 /// <summary>
 /// Returns a <see cref="TermVectorsReader"/> to read term
 /// vectors.
 /// </summary>
 public abstract TermVectorsReader VectorsReader(Directory directory, SegmentInfo segmentInfo, FieldInfos fieldInfos, IOContext context);
 public override StoredFieldsWriter FieldsWriter(Directory directory, SegmentInfo si, IOContext context)
 {
     return(new Lucene40StoredFieldsWriter(directory, si.Name, context));
 }
Beispiel #20
0
 /// <summary>
 /// Read <see cref="SegmentInfo"/> data from a directory. </summary>
 /// <param name="directory"> Directory to read from. </param>
 /// <param name="segmentName"> Name of the segment to read. </param>
 /// <param name="context"> IO context. </param>
 /// <returns> Infos instance to be populated with data. </returns>
 /// <exception cref="System.IO.IOException"> If an I/O error occurs. </exception>
 public abstract SegmentInfo Read(Directory directory, string segmentName, IOContext context);