/* Write as a d-gaps list */ func (bv *BitVector) writeClearedDgaps(output store.IndexOutput) error { err := store.Stream(output). WriteInt(-1). // mark using d-gaps WriteInt(int32(bv.size)). WriteInt(int32(bv.Count())). Close() if err != nil { return err } last, numCleared := 0, bv.size-bv.Count() for i, v := range bv.bits { if v == byte(0xff) { continue } err = output.WriteVInt(int32(i - last)) if err == nil { err = output.WriteByte(v) } if err != nil { return err } last = i numCleared -= (8 - util.BitCount(v)) assert(numCleared >= 0 || i == len(bv.bits)-1 && numCleared == -(8-(bv.size&7))) if numCleared <= 0 { break } } return nil }
func (w *Lucene41PostingsWriter) Init(termsOut store.IndexOutput) error { err := codec.WriteHeader(termsOut, LUCENE41_TERMS_CODEC, LUCENE41_VERSION_CURRENT) if err == nil { err = termsOut.WriteVInt(LUCENE41_BLOCK_SIZE) } return err }
func NewStoredFieldsIndexWriter(indexOutput store.IndexOutput) (*StoredFieldsIndexWriter, error) { err := indexOutput.WriteVInt(packed.VERSION_CURRENT) if err != nil { return nil, err } return &StoredFieldsIndexWriter{ fieldsIndexOut: indexOutput, blockChunks: 0, blockDocs: 0, firstStartPointer: -1, totalDocs: 0, docBaseDeltas: make([]int, BLOCK_SIZE), startPointerDeltas: make([]int64, BLOCK_SIZE), }, nil }
func writeBytesRef(out store.IndexOutput, bytes []byte) (err error) { if err = out.WriteVInt(int32(len(bytes))); err == nil { err = out.WriteBytes(bytes) } return }
func (w *SkipWriter) WriteSkipData(level int, skipBuffer store.IndexOutput) error { delta := w.curDoc - w.lastSkipDoc[level] var err error if err = skipBuffer.WriteVInt(int32(delta)); err != nil { return err } w.lastSkipDoc[level] = w.curDoc if err = skipBuffer.WriteVInt(int32(w.curDocPointer - w.lastSkipDocPointer[level])); err != nil { return err } w.lastSkipDocPointer[level] = w.curDocPointer if w.fieldHasPositions { if err = skipBuffer.WriteVInt(int32(w.curPosPointer - w.lastSkipPosPointer[level])); err != nil { return err } w.lastSkipPosPointer[level] = w.curPosPointer if err = skipBuffer.WriteVInt(int32(w.curPosBufferUpto)); err != nil { return err } if w.fieldHasPayloads { if err = skipBuffer.WriteVInt(int32(w.curPayloadByteUpto)); err != nil { return err } } if w.fieldHasOffsets || w.fieldHasPayloads { if err = skipBuffer.WriteVInt(int32(w.curPayPointer - w.lastSkipPayPointer[level])); err != nil { return err } w.lastSkipPayPointer[level] = w.curPayPointer } } return nil }
return } var success = false defer func() { if success { err = output.Close() } else { util.CloseWhileSuppressingError(output) } }() if err = codec.WriteHeader(output, FI_CODEC_NAME, FI_FORMAT_CURRENT); err != nil { return } if err = output.WriteVInt(int32(infos.Size())); err != nil { return } for _, fi := range infos.Values { indexOptions := fi.IndexOptions() bits := byte(0) if fi.HasVectors() { bits |= FI_STORE_TERMVECTOR } if fi.OmitsNorms() { bits |= FI_OMIT_NORMS } if fi.HasPayloads() { bits |= FI_STORE_PAYLOADS } if fi.IsIndexed() {