npm

Join us for the "JavaScript Supply Chain Security" tech talk, presented by VP of Security, Adam Baldwin. 6/20 at 10am PT.Sign up here »

lucene-queryparser

3.0.0 • Public • Published

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-queryparser');
 
// return the expression tree
var results = parser.parse('title:"The Right Way" AND text:go');
 
console.log(results['left']['field']);      // title
console.log(results['left']['term']);       // The Right Way
console.log(results['operator']);           // AND
console.log(results['right']['field']);     // text
console.log(results['right']['term']);      // go

A slightly more complicated example:

var parser = require('lucene-queryparser');
 
// return the expression tree
var results = parser.parse('test AND (foo OR bar)');
 
console.log(results['left']['term']);       // test
console.log(results['operator']);           // AND
 
// the grouped expression in parentheses becomes it's own nested node
var rightNode = results['right'];
 
console.log(rightNode['left']['term']);     // foo
console.log(rightNode['operator']);         // OR
console.log(rightNode['right']['term']);    // bar

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.

install

npm i lucene-queryparser

Downloadsweekly downloads

411

version

3.0.0

license

Apache 2.0

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability