Search Parser
Allow parsing search queries, using free-text, keywords and boolean operators.
Installation
Using yarn:
yarn add search-parser
Using npm:
npm instal search-parser --save
Usage
API
parse(query)
Convert a query string into an array of arrays of expression objects. Support freetext, keywords (key:value), boolean operators (AND, OR, NOT) and parenthesis. For more information on the shape of the nested arrays, read the documentation at boolean-parser-js.
Each expression object is in the form:
key: condition: value
Where key
is the keyword or 'freetext' in case no given keyword.
condition
is either 'include' or 'exclude' (when using NOT operator).
And value
is the term to search.
Sample test case:
;
parseToPredicate(query, searchFn)
Parse the query string and convert it into a unified predicate which represent the given query.
When executed on an item
, the predicate will call the given searchFn
and pass it (item, textToSearch, keyword)
.
Sample test case:
const shows = name: 'iron-fist' year: '2017' rating: '7.6' name: 'the walking dead' year: '2010' rating: '8.5' name: 'legion' year: '2017' rating: '8.8' name: 'game of thrones' year: '2011' rating: '9.5' ; { if keyword === 'freetext' return Object return item && itemkeyword && itemkeyword;} ;
For more examples, see the src/tests folder
Notes
This library depends on boolean-parser-js to parse the expressions using boolean operators (AND, OR).