MCPcopy
hub / github.com/zincsearch/zincsearch / ParseFuzziness

Function ParseFuzziness

pkg/uquery/query/fuzzy.go:92–132  ·  view source on GitHub ↗
(fuzziness interface{}, query string, zer *analysis.Analyzer)

Source from the content-addressed store, hash-verified

90}
91
92func ParseFuzziness(fuzziness interface{}, query string, zer *analysis.Analyzer) int {
93 val, _ := zutils.ToString(fuzziness)
94 val = strings.ToUpper(val)
95 if !strings.HasPrefix(val, "AUTO") {
96 v, _ := zutils.ToInt(val)
97 return v
98 }
99
100 if zer == nil {
101 zer = analyzer.NewStandardAnalyzer()
102 }
103 tokens := zer.Analyze([]byte(query))
104 n := 0
105 for _, token := range tokens {
106 if n < len(token.Term) {
107 n = len(token.Term)
108 }
109 }
110
111 n1 := 3
112 n2 := 6
113 if strings.Contains(val, ":") && strings.Contains(val, ",") {
114 val := strings.TrimPrefix(val, "AUTO:")
115 vals := strings.Split(val, ",")
116 if len(vals) == 2 {
117 n1, _ = zutils.ToInt(vals[0])
118 n2, _ = zutils.ToInt(vals[1])
119 if n1 < 2 || n1 >= n2 {
120 return 0
121 }
122 }
123 }
124
125 v := 0
126 if n >= n2 {
127 v = 2
128 } else if n >= n1 {
129 v = 1
130 }
131 return v
132}

Callers 3

MatchQueryFunction · 0.85
FuzzyQueryFunction · 0.85

Calls 3

ToStringFunction · 0.92
ToIntFunction · 0.92
ContainsMethod · 0.80

Tested by

no test coverage detected