scorch build optimize freq/loc slice capacity
This commit is contained in:
parent
856778ad7b
commit
a338386a03
|
@ -308,7 +308,7 @@ func persistStoredFieldValues(fieldID int,
|
||||||
}
|
}
|
||||||
|
|
||||||
func persistPostingDetails(memSegment *mem.Segment, w *CountHashWriter, chunkFactor uint32) ([]uint64, []uint64, error) {
|
func persistPostingDetails(memSegment *mem.Segment, w *CountHashWriter, chunkFactor uint32) ([]uint64, []uint64, error) {
|
||||||
var freqOffsets, locOfffsets []uint64
|
freqOffsets := make([]uint64, 0, len(memSegment.Postings))
|
||||||
tfEncoder := newChunkedIntCoder(uint64(chunkFactor), uint64(len(memSegment.Stored)-1))
|
tfEncoder := newChunkedIntCoder(uint64(chunkFactor), uint64(len(memSegment.Stored)-1))
|
||||||
for postingID := range memSegment.Postings {
|
for postingID := range memSegment.Postings {
|
||||||
if postingID != 0 {
|
if postingID != 0 {
|
||||||
|
@ -351,6 +351,7 @@ func persistPostingDetails(memSegment *mem.Segment, w *CountHashWriter, chunkFac
|
||||||
}
|
}
|
||||||
|
|
||||||
// now do it again for the locations
|
// now do it again for the locations
|
||||||
|
locOffsets := make([]uint64, 0, len(memSegment.Postings))
|
||||||
locEncoder := newChunkedIntCoder(uint64(chunkFactor), uint64(len(memSegment.Stored)-1))
|
locEncoder := newChunkedIntCoder(uint64(chunkFactor), uint64(len(memSegment.Stored)-1))
|
||||||
for postingID := range memSegment.Postings {
|
for postingID := range memSegment.Postings {
|
||||||
if postingID != 0 {
|
if postingID != 0 {
|
||||||
|
@ -414,14 +415,15 @@ func persistPostingDetails(memSegment *mem.Segment, w *CountHashWriter, chunkFac
|
||||||
}
|
}
|
||||||
|
|
||||||
// record where this postings loc info starts
|
// record where this postings loc info starts
|
||||||
locOfffsets = append(locOfffsets, uint64(w.Count()))
|
locOffsets = append(locOffsets, uint64(w.Count()))
|
||||||
locEncoder.Close()
|
locEncoder.Close()
|
||||||
_, err := locEncoder.Write(w)
|
_, err := locEncoder.Write(w)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return freqOffsets, locOfffsets, nil
|
|
||||||
|
return freqOffsets, locOffsets, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func persistPostingsLocs(memSegment *mem.Segment, w *CountHashWriter) (rv []uint64, err error) {
|
func persistPostingsLocs(memSegment *mem.Segment, w *CountHashWriter) (rv []uint64, err error) {
|
||||||
|
|
Loading…
Reference in New Issue