Documentation ¶
Overview ¶
Approximate sub-string matching using edit distance. Damerau-Levenshtein distance (with transposions/swaps)
Index ¶
- Constants
- type EditorDistance
- func DefaultDistanceLimit(length int) EditorDistance
- func EditorDistanceRunes(pattern []rune, word []rune) EditorDistance
- func GetSubqueryDistance(query string, word string, limit EditorDistance) (distance EditorDistance)
- func MinDistance(args ...EditorDistance) (result EditorDistance)
- func QueryDistance(query []SubqueryLimit, word string, limit EditorDistance) (ok bool, distance EditorDistance)
- func SameRuneDistance(p rune, w rune) EditorDistance
- func SearchDistanceDL(pattern string, word string) EditorDistance
- type SubqueryLimit
- type WeightedString
- type WeightedStringHeap
Constants ¶
View Source
const ( TranspositionDistance = EditorDistance(1) DeletionDistance = EditorDistance(1) InsertionDistance = EditorDistance(1) SubstitutionDistance = EditorDistance(1) CutCost = EditorDistance(32767) )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EditorDistance ¶
type EditorDistance int
func DefaultDistanceLimit ¶
func DefaultDistanceLimit(length int) EditorDistance
func EditorDistanceRunes ¶
func EditorDistanceRunes(pattern []rune, word []rune) EditorDistance
func GetSubqueryDistance ¶
func GetSubqueryDistance(query string, word string, limit EditorDistance) (distance EditorDistance)
func MinDistance ¶
func MinDistance(args ...EditorDistance) (result EditorDistance)
func QueryDistance ¶
func QueryDistance(query []SubqueryLimit, word string, limit EditorDistance) (ok bool, distance EditorDistance)
func SameRuneDistance ¶
func SameRuneDistance(p rune, w rune) EditorDistance
func SearchDistanceDL ¶
func SearchDistanceDL(pattern string, word string) EditorDistance
type SubqueryLimit ¶
type SubqueryLimit struct {
// contains filtered or unexported fields
}
func MakeSubqueryLimit ¶
func MakeSubqueryLimit(query []string, limit EditorDistance) []SubqueryLimit
type WeightedString ¶
type WeightedString struct { Weight EditorDistance Word string }
func (*WeightedString) Less ¶
func (a *WeightedString) Less(b *WeightedString) bool
type WeightedStringHeap ¶
type WeightedStringHeap []*WeightedString
func ProcessUrlSource ¶
func ProcessUrlSource(queryWords []string, source func(func(string) bool), limitPtr *int, tolerancePtr *EditorDistance) WeightedStringHeap
TODO rewrite using channel TODO return err if limit is out of range
func (*WeightedStringHeap) Add ¶
func (h *WeightedStringHeap) Add(item *WeightedString, limit int)
func (*WeightedStringHeap) Len ¶
func (h *WeightedStringHeap) Len() int
func (*WeightedStringHeap) Less ¶
func (h *WeightedStringHeap) Less(i, j int) bool
func (*WeightedStringHeap) Pop ¶
func (h *WeightedStringHeap) Pop() interface{}
func (*WeightedStringHeap) Push ¶
func (h *WeightedStringHeap) Push(x interface{})
func (WeightedStringHeap) Swap ¶
func (h WeightedStringHeap) Swap(i, j int)
Click to show internal directories.
Click to hide internal directories.