scorch mem optimize processDocument() stored field
This commit is contained in:
parent
b7cfef81c9
commit
6ae799052a
|
@ -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() {
|
||||
|
|
Loading…
Reference in New Issue