0
0
Fork 0

scorch optimize mem processField inner-loop

This commit is contained in:
Steve Yen 2018-03-06 15:26:54 -08:00
parent dde6c2e01b
commit 8841d79d26
1 changed files with 6 additions and 3 deletions

View File

@ -111,13 +111,15 @@ func (s *Segment) initializeDict(results []*index.AnalysisResult) {
}
processField := func(fieldID uint16, tfs analysis.TokenFrequencies) {
dict := s.Dicts[fieldID]
dictKeys := s.DictKeys[fieldID]
for term, tf := range tfs {
pidPlus1, exists := s.Dicts[fieldID][term]
pidPlus1, exists := dict[term]
if !exists {
numPostingsLists++
pidPlus1 = uint64(numPostingsLists)
s.Dicts[fieldID][term] = pidPlus1
s.DictKeys[fieldID] = append(s.DictKeys[fieldID], term)
dict[term] = pidPlus1
dictKeys = append(dictKeys, term)
numTermsPerPostingsList = append(numTermsPerPostingsList, 0)
numLocsPerPostingsList = append(numLocsPerPostingsList, 0)
}
@ -127,6 +129,7 @@ func (s *Segment) initializeDict(results []*index.AnalysisResult) {
totLocs += len(tf.Locations)
}
numTokenFrequencies += len(tfs)
s.DictKeys[fieldID] = dictKeys
}
for _, result := range results {