From b092da6d281a437c3f847e655c4ad182decb0978 Mon Sep 17 00:00:00 2001 From: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> Date: Tue, 21 May 2024 13:20:19 +0000 Subject: [performance] cache v2 filter keyword regular expressions (#2903) * add caching of filterkeyword regular expressions * formatting * fix WholeWord nil check --- internal/typeutils/internaltofrontend.go | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) (limited to 'internal/typeutils/internaltofrontend.go') diff --git a/internal/typeutils/internaltofrontend.go b/internal/typeutils/internaltofrontend.go index 7a5572267..d7f1fac6c 100644 --- a/internal/typeutils/internaltofrontend.go +++ b/internal/typeutils/internaltofrontend.go @@ -22,7 +22,6 @@ import ( "errors" "fmt" "math" - "regexp" "strconv" "strings" "time" @@ -746,18 +745,9 @@ func (c *Converter) statusToAPIFilterResults( keywordMatches := make([]string, 0, len(filter.Keywords)) fields := filterableTextFields(s) for _, filterKeyword := range filter.Keywords { - wholeWord := util.PtrValueOr(filterKeyword.WholeWord, false) - wordBreak := `` - if wholeWord { - wordBreak = `\b` - } - re, err := regexp.Compile(`(?i)` + wordBreak + regexp.QuoteMeta(filterKeyword.Keyword) + wordBreak) - if err != nil { - return nil, err - } var isMatch bool for _, field := range fields { - if re.MatchString(field) { + if filterKeyword.Regexp.MatchString(field) { isMatch = true break } -- cgit v1.2.3