Lucene Query Parser for JavaScript
This is an implementation of the Lucene Query Parser developed using PEG.js.
Example
A quick example of how to use it:
var parser = require('lucene-query-parser');
var results = parser.parse('title:"The Right Way" AND text:go');
console.log(results['left']['field']);
console.log(results['left']['term']);
console.log(results['operator']);
console.log(results['right']['field']);
console.log(results['right']['term']);
A slightly more complicated example:
var parser = require('lucene-query-parser');
var results = parser.parse('test AND (foo OR bar)');
console.log(results['left']['term']);
console.log(results['operator']);
var rightNode = results['right'];
console.log(rightNode['left']['term']);
console.log(rightNode['operator']);
console.log(rightNode['right']['term']);
Installation
On the Command-Line
The library is available as an npm module.
To install, run:
npm install lucene-queryparser
Unit Tests
Unit tests are built with Jasmine.
On the Command-line
To run the unit tests on the command line, using node:
npm test
Grammar
The parser is auto-generated from a PEG implementation in Javascript called PEG.js.
To test the grammar without using the generated parser, or if you want to modify it, try out PEG.js online. This is a handy way to test an abritrary query and see what the results will be like or debug a problem with the parser for a given piece of data.