internal void  WriteProx(FreqProxTermsWriter.PostingList p, int proxCode)
        {
            Payload payload;

            if (payloadAttribute == null)
            {
                payload = null;
            }
            else
            {
                payload = payloadAttribute.GetPayload();
            }

            if (payload != null && payload.length > 0)
            {
                termsHashPerField.WriteVInt(1, (proxCode << 1) | 1);
                termsHashPerField.WriteVInt(1, payload.length);
                termsHashPerField.WriteBytes(1, payload.data, payload.offset, payload.length);
                hasPayloads = true;
            }
            else
            {
                termsHashPerField.WriteVInt(1, proxCode << 1);
            }
            p.lastPosition = fieldState.position;
        }
Esempio n. 2
0
        internal override void  NewTerm(RawPostingList p0)
        {
            System.Diagnostics.Debug.Assert(docState.TestPoint("TermVectorsTermsWriterPerField.newTerm start"));

            TermVectorsTermsWriter.PostingList p = (TermVectorsTermsWriter.PostingList)p0;

            p.freq = 1;

            if (doVectorOffsets)
            {
                int startOffset = fieldState.offset + offsetAttribute.StartOffset();;
                int endOffset   = fieldState.offset + offsetAttribute.EndOffset();

                termsHashPerField.WriteVInt(1, startOffset);
                termsHashPerField.WriteVInt(1, endOffset - startOffset);
                p.lastOffset = endOffset;
            }

            if (doVectorPositions)
            {
                termsHashPerField.WriteVInt(0, fieldState.position);
                p.lastPosition = fieldState.position;
            }
        }