fuzzy-match

2021-01-24

From a string input and a list of candidates, return the most relevant candidates first.

Upstream URL

github.com/vindarel/fuzzy-match

Author

Nyxt project, Ambrevar, Vindarel

Maintainer

vindarel <vindarel@mailz.org>

License

MIT
README

Fuzzy-match

Fuzzy match candidates from an input string.

On Quicklisp (2020-12) and Ultralisp.

CL-USER> (fuzzy-match "hl" '("foo" "bar" "hello" "hey!"))
("hello" "hey!" "foo" "bar")
CL-USER> (fuzzy-match "zp" '("foo" "zepellin" "bar: zep"))
("zepellin" "bar: zep" "foo")

The parameters are hand-picked for the results to feel natural. A candidate that starts with the input substring should appear first. For example, we use the Damerau-Levenshtein distance thanks to the MK-STRING-METRICS library under the hood, but we don't obey to its result.

To give any objects as candidates, and not only strings, make them implement object-display, that returns a string representation.

Nyxt origin

This code was extracted from the Nyxt browser. Original authors: Ambrevar, Vindarel.

Licence

MIT

Dependencies (2)

  • cl-str
  • mk-string-metrics

Dependents (1)

  • GitHub
  • Quicklisp