func newFieldReader(parent *BlockTreeTermsReader, fieldInfo *FieldInfo, numTerms int64, rootCode []byte, sumTotalTermFreq, sumDocFreq int64, docCount int, indexStartFP int64, longsSize int, indexIn store.IndexInput, minTerm, maxTerm []byte) (r FieldReader, err error) { // log.Print("Initializing FieldReader...") assert(numTerms > 0) r = FieldReader{ parent: parent, fieldInfo: fieldInfo, numTerms: numTerms, sumTotalTermFreq: sumTotalTermFreq, sumDocFreq: sumDocFreq, docCount: docCount, indexStartFP: indexStartFP, rootCode: rootCode, longsSize: longsSize, minTerm: minTerm, maxTerm: maxTerm, } // log.Printf("BTTR: seg=%v field=%v rootBlockCode=%v divisor=", // parent.segment, fieldInfo.Name, rootCode) in := store.NewByteArrayDataInput(rootCode) n, err := in.ReadVLong() if err != nil { return r, err } r.rootBlockFP = int64(uint64(n) >> BTT_OUTPUT_FLAGS_NUM_BITS) if indexIn != nil { clone := indexIn.Clone() // log.Printf("start=%v field=%v", indexStartFP, fieldInfo.Name) clone.Seek(indexStartFP) r.index, err = fst.LoadFST(clone, fst.ByteSequenceOutputsSingleton()) } return r, err }
func newFieldReader(owner *BlockTreeTermsReader, fieldInfo model.FieldInfo, numTerms int64, rootCode []byte, sumTotalTermFreq, sumDocFreq int64, docCount int32, indexStartFP int64, indexIn store.IndexInput) (r FieldReader, err error) { log.Print("Initializing FieldReader...") if numTerms <= 0 { panic("assert fail") } // assert numTerms > 0 r = FieldReader{ BlockTreeTermsReader: owner, fieldInfo: fieldInfo, numTerms: numTerms, sumTotalTermFreq: sumTotalTermFreq, sumDocFreq: sumDocFreq, docCount: docCount, indexStartFP: indexStartFP, rootCode: rootCode, } log.Printf("BTTR: seg=%v field=%v rootBlockCode=%v divisor=", owner.segment, fieldInfo.Name, rootCode) in := store.NewByteArrayDataInput(rootCode) n, err := in.ReadVLong() if err != nil { return r, err } r.rootBlockFP = int64(uint64(n) >> BTT_OUTPUT_FLAGS_NUM_BITS) if indexIn != nil { clone := indexIn.Clone() log.Printf("start=%v field=%v", indexStartFP, fieldInfo.Name) clone.Seek(indexStartFP) r.index, err = fst.LoadFST(clone, fst.ByteSequenceOutputsSingleton()) } return r, err }