Return all word matches between two arrays within given Levenshtein distance.
Intended use is to return all words in a query that has matches in an index within a given Levenshtein distance. Good for autocomplete type functionality, and in some cases also searching.
Part of daq-proc - Simple document and query processing for offline-first search.
Importing/requiring script has changed slightly for CJS and ESM. UMD is as it was.
<script src="https://cdn.jsdelivr.net/npm/leven-match/dist/leven-match.umd.min.js"></script>
// lvm.levenMatch available
const { levenMatch } = require('leven-match')
// levenMatch available
import { levenMatch } from 'leven-match'
// levenMatch available
<script>
const index = ['return', 'all', 'word', 'matches', 'between', 'two', 'arrays', 'within', 'given', 'levenshtein', 'distance', 'intended', 'use', 'is', 'to', 'words', 'in', 'a', 'query', 'that', 'has', 'an', 'index', 'good', 'for', 'autocomplete', 'type', 'functionality,', 'and', 'some', 'cases', 'also', 'searching']
const query = ['qvery', 'words', 'levensthein']
levenMatch(query, index, {distance: 2})
// returns:
//[ [ 'query' ], [ 'word', 'words' ], [ 'levenshtein' ] ]
</script>
Returns an array of arrays. One sub-array for each query word.