Haystack is a lightweight search / suggestion library that can be used to find similar matches to a word. Just provide the source data to search against (as an array or object), and Haystack will return a list of approximate matches. The lower the flexibility the more strict your matches will be.
Using npm:
npm i haystack-searchImport Haystack into your project:
import Haystack from 'haystack-search';
// or
const Haystack = require('haystack-search');const haystack = new Haystack(options);| Option | Default | Description |
|---|---|---|
flexibility (number) |
2 | "Fuzziness" of search. The lower the number, the more strict your matches will be. (If set to 0, Haystack will only look for perfect matches) |
caseSensitive (boolean) |
false | Whether or not search is case sensitive |
exclusions (array) |
[] | An array of strings or regexes to ignore in query |
ignoreStopWords (boolean) |
false | Ignore common stop words such as the, a, in, etc. |
stemming (boolean) |
false | Reduces tokens in a query to their base words using stemmer |
haystack.search(searchTerm, source, [limit]);Returns an array of matches within your flexibility range. If no limit is given, the default number of results will be 1.
haystack.tokenize(searchTerm, [delimiter]);Returns an array of tokens. By default this splits on whitespaces, but you can define a custom delimiter to use instead.
Contributions and suggestions for improvement are always welcome!
- Fork this repo (https://github.com/AlexanderLyon/Haystack/fork)
- Create your new feature branch
- Commit changes and push
- Create a new Pull Request