ahocorasick

package module
v0.0.0-...-2b2fb9c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 10, 2021 License: BSD-3-Clause Imports: 3 Imported by: 0

README

ahocorasick

A Golang implementation of the Aho-Corasick string matching algorithm

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Hit

type Hit struct {
	// the index in the original dict of the keyword that was found.
	Index int
	// the start index in the text where the keyword was found.
	TextIndex int
}

Hit describes a match.

type Matcher

type Matcher struct {
	// contains filtered or unexported fields
}

Matcher is returned by NewMatcher and contains a list of blices to match against

func NewMatcher

func NewMatcher(dictionary [][]byte) *Matcher

NewMatcher creates a new Matcher used to match against a set of blices

func NewStringMatcher

func NewStringMatcher(dictionary []string) *Matcher

NewStringMatcher creates a new Matcher used to match against a set of strings (this is a helper to make initialization easy)

func (*Matcher) AddBytes

func (m *Matcher) AddBytes(blice []byte)

func (*Matcher) AddString

func (m *Matcher) AddString(s string)

func (*Matcher) Contains

func (m *Matcher) Contains(in []byte) bool

Contains returns true if any string matches. This can be faster than Match() when you do not need to know which words matched.

func (*Matcher) Match

func (m *Matcher) Match(in []byte) []Hit

Match searches in for blices and returns all the blices found as indexes into the original dictionary.

This is not thread-safe method, seek for MatchThreadSafe() instead.

func (*Matcher) MatchThreadSafe

func (m *Matcher) MatchThreadSafe(in []byte) []Hit

MatchThreadSafe provides the same result as Match() but does it in a thread-safe manner. Uses a sync.Pool of haystacks to track the uniqueness of the result items.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL