Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eklem/leven-match
Return all word matches between two arrays within given Levenshtein distance
https://github.com/eklem/leven-match
Last synced: 22 days ago
JSON representation
Return all word matches between two arrays within given Levenshtein distance
- Host: GitHub
- URL: https://github.com/eklem/leven-match
- Owner: eklem
- License: mit
- Created: 2020-05-20T19:45:46.000Z (over 4 years ago)
- Default Branch: trunk
- Last Pushed: 2024-06-16T18:15:57.000Z (5 months ago)
- Last Synced: 2024-09-18T03:49:22.988Z (about 2 months ago)
- Language: JavaScript
- Homepage:
- Size: 1.47 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# leven-match
[![NPM version][npm-version-image]][npm-url]
[![NPM downloads][npm-downloads-image]][npm-url]
[![](https://data.jsdelivr.com/v1/package/npm/leven-match/badge?style=rounded)](https://www.jsdelivr.com/package/npm/leven-match)
[![MIT License][license-image]][license-url]
[![Build Status][build-image]][build-url]
[![JavaScript Style Guide][standardjs-image]][standardjs-url]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](https://github.com/eklem/daq-proc) - Simple document and query processing for offline-first search.
## Breaking change
Importing/requiring script has changed slightly for CJS and ESM. UMD is as it was.
## Initiating
### UMD - Universal module definition/browser
```javaScript// lvm.levenMatch available
```### CJS - CommonJS
```javaScript
const { levenMatch } = require('leven-match')
// levenMatch available
```### ESM - Ecmascript module
```javaScript
import { levenMatch } from 'leven-match'
// levenMatch available
```## Use
```javaScript
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' ] ]```
Returns an array of arrays. One sub-array for each query word.
[license-image]: http://img.shields.io/badge/license-MIT-blue.svg?style=flat
[license-url]: LICENSE
[npm-url]: https://npmjs.org/package/leven-match
[npm-version-image]: https://img.shields.io/npm/v/leven-match.svg?style=flat
[npm-downloads-image]: https://img.shields.io/npm/dm/leven-match.svg?style=flat
[build-url]: https://github.com/eklem/leven-match/actions/workflows/tests.yml
[build-image]: https://github.com/eklem/leven-match/actions/workflows/tests.yml/badge.svg
[standardjs-url]: https://standardjs.com
[standardjs-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg?style=flat-square