var isIndexed, storeTermVector, omitNorms, storePayloads bool var indexOptions IndexOptions var docValuesType, normsType DocValuesType var dvGen int64 var attributes map[string]string for i := 0; i < size; i++ { if name, err = input.ReadString(); err != nil { return } if fieldNumber, err = input.ReadVInt(); err != nil { return } assert2(fieldNumber >= 0, "invalid field number for field: %v, fieldNumber=%v (resource=%v)", name, fieldNumber, input) if bits, err = input.ReadByte(); err != nil { return } isIndexed = (bits & FI_IS_INDEXED) != 0 storeTermVector = (bits & FI_STORE_TERMVECTOR) != 0 omitNorms = (bits & FI_OMIT_NORMS) != 0 storePayloads = (bits & FI_STORE_PAYLOADS) != 0 switch { case !isIndexed: // case (bits & FI_OMIT_TERM_FREQ_AND_POSITIONS) != 0: indexOptions = INDEX_OPT_DOCS_ONLY case (bits & FI_OMIT_POSITIONS) != 0: indexOptions = INDEX_OPT_DOCS_AND_FREQS case (bits & FI_STORE_OFFSETS_IN_POSTINGS) != 0: indexOptions = INDEX_OPT_DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS