haystack-search
v6.0.1
Published
Search for approximate matches to a query
Downloads
7
Maintainers
Readme
Haystack
Overview
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.
Installation
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);
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 |
Methods
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
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