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-search
Import 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