cache: only FTS index token < 100 characters

This commit is contained in:
Michael Muré 2021-03-28 23:26:58 +02:00
parent 919227c6da
commit 32958b5ca1
No known key found for this signature in database
GPG Key ID: A4457C029293126F

View File

@ -8,12 +8,14 @@ import (
"sort"
"strings"
"time"
"unicode/utf8"
"github.com/blevesearch/bleve"
"github.com/MichaelMure/git-bug/bug"
"github.com/MichaelMure/git-bug/entity"
"github.com/MichaelMure/git-bug/query"
"github.com/MichaelMure/git-bug/repository"
"github.com/blevesearch/bleve"
)
const (
@ -479,11 +481,24 @@ func (c *RepoCache) addBugToSearchIndex(snap *bug.Snapshot) error {
Text []string
}{}
for _, comment := range snap.Comments {
searchableBug.Text = append(searchableBug.Text, comment.Message)
// See https://github.com/blevesearch/bleve/issues/1576
var sb strings.Builder
normalize := func(text string) string {
sb.Reset()
for _, field := range strings.Fields(text) {
if utf8.RuneCountInString(field) < 100 {
sb.WriteString(field)
sb.WriteRune(' ')
}
}
return sb.String()
}
searchableBug.Text = append(searchableBug.Text, snap.Title)
for _, comment := range snap.Comments {
searchableBug.Text = append(searchableBug.Text, normalize(comment.Message))
}
searchableBug.Text = append(searchableBug.Text, normalize(snap.Title))
index, err := c.repo.GetBleveIndex("bug")
if err != nil {