func (w *Lucene41PostingsWriter) EncodeTerm(longs []int64, out util.DataOutput, fieldInfo *FieldInfo, _state *BlockTermState, absolute bool) (err error) { assert(longs != nil) assert(len(longs) > 0) state := _state.Self.(*intBlockTermState) if absolute { w.lastState = emptyState } longs[0] = state.docStartFP - w.lastState.docStartFP if w.fieldHasPositions { longs[1] = state.posStartFP - w.lastState.posStartFP if w.fieldHasPayloads || w.fieldHasOffsets { longs[2] = state.payStartFP - w.lastState.payStartFP } } if state.singletonDocID != -1 { if err = out.WriteVInt(int32(state.singletonDocID)); err != nil { return } } if w.fieldHasPositions && state.lastPosBlockOffset != -1 { if err = out.WriteVLong(state.lastPosBlockOffset); err != nil { return } } if state.skipOffset != -1 { if err = out.WriteVLong(state.skipOffset); err != nil { return } } w.lastState = state return nil }