Skip to content

A single-header C++ Boolean search library for streaming applications

License

Notifications You must be signed in to change notification settings

rekola/boolean-search

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

boolean-search

GitHub License CI PRs Welcome

A single-header C++ Boolean search library for streaming applications.

Features

  • UTF-8
  • AND, OR, NOT, NEAR, ONEAR operators
  • Wildcards
  • Unicode normalization

Example

boolean_matcher::matcher m("apple AND orange");
if (m.match("I've got an apple and an orange")) {
	std::cout << "A match was found\n";
}

Future Plans

  • Add maximum distance to NEAR and ONEAR (e.g. NEAR/1)
  • Add support for wstrings
  • Add support for pairs and tuples
  • Add interface for metadata queries (e.g. .timestamp > "2024-10-01")
  • Allow wildcards inside terms (e.g. w*d)
  • Add comparison operators and arithmetics
  • Add filtering
  • Add better lexer and parser
  • Embeddings / Document vectors

Dependencies

  • utf8proc