0
0
Fork 0

scorch mem optimize processDocument() stored field

This commit is contained in:
Steve Yen 2018-03-03 11:52:27 -08:00
parent b7cfef81c9
commit 6ae799052a
1 changed files with 7 additions and 7 deletions

View File

@ -222,12 +222,6 @@ func (s *Segment) processDocument(result *index.AnalysisResult) {
}
}
storeField := func(docNum uint64, field uint16, typ byte, val []byte, pos []uint64) {
s.Stored[docNum][field] = append(s.Stored[docNum][field], val)
s.StoredTypes[docNum][field] = append(s.StoredTypes[docNum][field], typ)
s.StoredPos[docNum][field] = append(s.StoredPos[docNum][field], pos)
}
// walk each composite field
for _, field := range result.Document.CompositeFields {
fieldID := uint16(s.getOrDefineField(field.Name()))
@ -235,6 +229,10 @@ func (s *Segment) processDocument(result *index.AnalysisResult) {
processField(fieldID, field.Name(), l, tf)
}
docStored := s.Stored[docNum]
docStoredTypes := s.StoredTypes[docNum]
docStoredPos := s.StoredPos[docNum]
// walk each field
for i, field := range result.Document.Fields {
fieldID := uint16(s.getOrDefineField(field.Name()))
@ -242,7 +240,9 @@ func (s *Segment) processDocument(result *index.AnalysisResult) {
tf := result.Analyzed[i]
processField(fieldID, field.Name(), l, tf)
if field.Options().IsStored() {
storeField(docNum, fieldID, encodeFieldType(field), field.Value(), field.ArrayPositions())
docStored[fieldID] = append(docStored[fieldID], field.Value())
docStoredTypes[fieldID] = append(docStoredTypes[fieldID], encodeFieldType(field))
docStoredPos[fieldID] = append(docStoredPos[fieldID], field.ArrayPositions())
}
if field.Options().IncludeDocValues() {