Simple query tokenizer for turning a query string into a comparator for other text fields.
var Query = require("text-query");
// Create a query: spaces are OR'd groups and commas AND groups, with
// double quoted strings being one search entity.
var q = new Query("'death metal', swedish finnish, guitar bass drums");
// This query only returns true of "death metal" is in the text,
// along with "swedish" OR "finnish", and an instrument ("guitar" or "bass" or "drums")
// must also be in the string.
q.matches("swedish death metal for guitarists"); // true
q.matches("death metal for finnish bassists"); // true
q.matches("death to swedish metal drums"); // false, 'death metal' is not a single string
q.matches("norwegian death metal for guitarists"); // false, missing 'swedish' or 'finnish'
// Can also handle arrays of strings for matching
q.matches(["death metal", "swedish", "guitar"]); // true
$ npm install text-query
Creates a new Query object with query
string.
Returns a boolean indicating whether or not text
matches the internal query
. text
can also be an array of strings.
npm test
MIT License, Copyright (c) 2014 Jordan Santell