0
0
Fork 0

scorch zap merge checks err2 not err

Also, optimize the appending of the termSeparator so that the
docTermMap is accessed and updated just once.
This commit is contained in:
Steve Yen 2018-01-27 10:18:40 -08:00
parent 3030d4edb5
commit 56cdb68f35
1 changed files with 14 additions and 11 deletions

View File

@ -146,7 +146,7 @@ func persistMergedRest(segments []*Segment, drops []*roaring.Bitmap,
var bufMaxVarintLen64 []byte = make([]byte, binary.MaxVarintLen64)
var bufLoc []uint64
rv1 := make([]uint64, len(fieldsInv))
rv := make([]uint64, len(fieldsInv))
fieldDvLocs := make([]uint64, len(fieldsInv))
fieldDvLocsOffset := uint64(fieldNotUninverted)
@ -191,12 +191,14 @@ func persistMergedRest(segments []*Segment, drops []*roaring.Bitmap,
tfEncoder := newChunkedIntCoder(uint64(chunkFactor), newSegDocCount-1)
locEncoder := newChunkedIntCoder(uint64(chunkFactor), newSegDocCount-1)
fdvEncoder := newChunkedContentCoder(uint64(chunkFactor), newSegDocCount-1)
docTermMap := make(map[uint64][]byte, 0)
for err == nil {
term, _ := mergeItr.Current()
newRoaring := roaring.NewBitmap()
newRoaringLocs := roaring.NewBitmap()
tfEncoder.Reset()
locEncoder.Reset()
@ -222,9 +224,9 @@ func persistMergedRest(segments []*Segment, drops []*roaring.Bitmap,
// encode norm bits
norm := next.Norm()
normBits := math.Float32bits(float32(norm))
err3 := tfEncoder.Add(hitNewDocNum, next.Frequency(), uint64(normBits))
if err3 != nil {
return nil, 0, err3
err = tfEncoder.Add(hitNewDocNum, next.Frequency(), uint64(normBits))
if err != nil {
return nil, 0, err
}
locs := next.Locations()
if len(locs) > 0 {
@ -247,15 +249,16 @@ func persistMergedRest(segments []*Segment, drops []*roaring.Bitmap,
}
}
docTermMap[hitNewDocNum] = append(docTermMap[hitNewDocNum], term...)
docTermMap[hitNewDocNum] = append(docTermMap[hitNewDocNum], termSeparator)
docTermMap[hitNewDocNum] =
append(append(docTermMap[hitNewDocNum], term...), termSeparator)
next, err2 = postItr.Next()
}
if err != nil {
return nil, 0, err
if err2 != nil {
return nil, 0, err2
}
}
tfEncoder.Close()
locEncoder.Close()
@ -337,7 +340,7 @@ func persistMergedRest(segments []*Segment, drops []*roaring.Bitmap,
return nil, 0, err
}
rv1[fieldID] = dictOffset
rv[fieldID] = dictOffset
// update the doc value
docNumbers := make(docIDRange, 0, len(docTermMap))
@ -376,7 +379,7 @@ func persistMergedRest(segments []*Segment, drops []*roaring.Bitmap,
}
}
return rv1, fieldDvLocsOffset, nil
return rv, fieldDvLocsOffset, nil
}
const docDropped = math.MaxUint64