🌐 stuchl4n3k.net | 💻 stuchl4n3k | 🐦 @stuchl4n3k
Text input augmented with Lexer magic✨ to support advanced search features. Searchbox supports multiple user-defined keywords (filters, variables) and also NOT operator.
- Parses user input string into a structured formula of literals.
- Supports literal negation.
- Supports unicode.
- Operators are configurable.
import * as searchbox from '@webkitty/searchbox';
const inputText = 'Never take title:raisins from -author:rabbits';
const keywords = ['title', 'author'];
const formula = searchbox.parse(inputText, {keywords});
// Formula:
// _: [Never,take,from] // words not matching any keyword (aka fulltext)
// title: [raisins] // "title" keyword match
// -author: [rabbits] // "author" keyword match with NOT operator ("-")
Please note that only case-sensitive keyword matching is supported.
Copyright © 2019 stuchl4n3k. This project is MIT licensed.