Пример #1
0
        /// <summary>Called when we are done adding docs to this term. </summary>
        public override void FinishTerm(BlockTermState state)
        {
            SepTermState state_ = (SepTermState)state;

            // TODO: -- wasteful we are counting this in two places?
            if (Debugging.AssertsEnabled)
            {
                Debugging.Assert(state_.DocFreq > 0);
                Debugging.Assert(state_.DocFreq == df);
            }

            state_.DocIndex = docOut.GetIndex();
            state_.DocIndex.CopyFrom(docIndex, false);
            if (indexOptions != IndexOptions.DOCS_ONLY)
            {
                state_.FreqIndex = freqOut.GetIndex();
                state_.FreqIndex.CopyFrom(freqIndex, false);
                if (indexOptions == IndexOptions.DOCS_AND_FREQS_AND_POSITIONS)
                {
                    state_.PosIndex = posOut.GetIndex();
                    state_.PosIndex.CopyFrom(posIndex, false);
                }
                else
                {
                    state_.PosIndex = null;
                }
            }
            else
            {
                state_.FreqIndex = null;
                state_.PosIndex  = null;
            }

            if (df >= skipMinimum)
            {
                state_.SkipFP = skipOut.GetFilePointer();
                //System.out.println("  skipFP=" + skipFP);
                skipListWriter.WriteSkip(skipOut);
                //System.out.println("    numBytes=" + (skipOut.getFilePointer()-skipFP));
            }
            else
            {
                state_.SkipFP = -1;
            }
            state_.PayloadFP = payloadStart;

            lastDocID = 0;
            df        = 0;
        }
Пример #2
0
        /// <summary>Called when we are done adding docs to this term </summary>
        public override void FinishTerm(BlockTermState bstate)
        {
            var state = (SepTermState)bstate;

            // TODO: -- wasteful we are counting this in two places?
            Debug.Assert(state.DocFreq > 0);
            Debug.Assert(state.DocFreq == DF);

            state.DocIndex = DOC_OUT.Index();
            state.DocIndex.CopyFrom(DOC_INDEX, false);
            if (INDEX_OPTIONS != FieldInfo.IndexOptions.DOCS_ONLY)
            {
                state.FreqIndex = FREQ_OUT.Index();
                state.FreqIndex.CopyFrom(FREQ_INDEX, false);
                if (INDEX_OPTIONS == FieldInfo.IndexOptions.DOCS_AND_FREQS_AND_POSITIONS)
                {
                    state.PosIndex = POS_OUT.Index();
                    state.PosIndex.CopyFrom(POS_INDEX, false);
                }
                else
                {
                    state.PosIndex = null;
                }
            }
            else
            {
                state.FreqIndex = null;
                state.PosIndex  = null;
            }

            if (DF >= SKIP_MINIMUM)
            {
                state.SkipFp = SKIP_OUT.FilePointer;
                SKIP_LIST_WRITER.WriteSkip(SKIP_OUT);
            }
            else
            {
                state.SkipFp = -1;
            }
            state.PayloadFp = PAYLOAD_START;

            LAST_DOC_ID = 0;
            DF          = 0;
        }