Skip to content

Text input augmented with Lexer magic✨ to support advanced search features.

License

Notifications You must be signed in to change notification settings

f00b4r/searchbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Searchbox

🌐 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.

Features

  • Parses user input string into a structured formula of literals.
  • Supports literal negation.
  • Supports unicode.
  • Operators are configurable.

Usage

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.

📝 License

Copyright © 2019 stuchl4n3k. This project is MIT licensed.

FOSSA Status