lucene
Version:
Lucene query parser and formatter for JavaScript created using PEG.js
53 lines (38 loc) • 1.86 kB
Markdown
and stringify lucene queries.
**[Installation](
**[Try It](https://runkit.com/npm/lucene) |**
**[Usage](
**[Grammar](
**[History](
---
```
npm install --save lucene
-or-
yarn add lucene
```
```javascript
const lucene = require('lucene');
const ast = lucene.parse('name:frank OR job:engineer');
console.log(ast);
// {
// left: {
// field: 'name',
// term: 'frank'
// },
// operator: 'OR',
// right: {
// field: 'job',
// term: 'engineer'
// }
// }
console.log(lucene.toString(ast));
// name:frank OR job:engineer
```
The parser is auto-generated from a PEG implementation in JavaScript called [PEG.js](https://pegjs.org/).
To test the grammar without using the generated parser, or if you want to modify it, try out [PEG.js online](http://pegjs.org/online). This is a handy way to test arbitrary queries and see what the results will be like or debug a problem with the parser for a given piece of data.
This project is based on [thoward/lucene-query-parser.js](https://github.com/thoward/lucene-query-parser.js) and its forks (most notably [xomyaq/lucene-queryparser](https://github.com/xomyaq/lucene-queryparser)). The project is forked to allow some broader changes to the API surface area, project structure and additional capabilities.
Parse, modify