Esempio n. 1
0
	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