burl_fuzzy

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2021 License: GPL-3.0 Imports: 3 Imported by: 0

Documentation

Overview

Approximate sub-string matching using edit distance. Damerau-Levenshtein distance (with transposions/swaps)

Index

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)

Jump to

Keyboard shortcuts

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