MCPcopy
hub / github.com/dgraph-io/dgraph / QueryTokens

Method QueryTokens

tok/tok.go:494–520  ·  view source on GitHub ↗
(v interface{})

Source from the content-addressed store, hash-verified

492}
493
494func (t NGramTokenizer) QueryTokens(v interface{}) ([]string, error) {
495 tokens, err := t.processTokens(v)
496 if err != nil || tokens == nil {
497 return []string{}, err
498 }
499
500 return t.generateNGrams(tokens, func(tokens analysis.TokenStream, addToRes func(string)) {
501 n := len(tokens)
502 gram := 3
503 if n < 3 {
504 gram = n
505 }
506
507 for i := 0; i < n; i++ {
508 if i+gram <= n {
509 var builder strings.Builder
510 for j := 0; j < gram; j++ {
511 builder.Write(tokens[i+j].Term)
512 if j != (gram - 1) {
513 builder.Write([]byte(" "))
514 }
515 }
516 addToRes(builder.String())
517 }
518 }
519 }), nil
520}
521
522func (t NGramTokenizer) Name() string { return "ngram" }
523func (t NGramTokenizer) Type() string { return "string" }

Callers 1

BuildNGramQueryTokensFunction · 0.80

Calls 4

processTokensMethod · 0.95
generateNGramsMethod · 0.95
WriteMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected