HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //usr/share/opensearch-dashboards/node_modules/lucene/README.md
# lucene   [![Build Status](https://travis-ci.org/bripkens/lucene.svg?branch=master)](https://travis-ci.org/bripkens/lucene) [![Dependency Status](https://david-dm.org/bripkens/lucene/master.svg)](https://david-dm.org/bripkens/lucene/master) [![Coverage Status](https://img.shields.io/coveralls/bripkens/lucene.svg)](https://coveralls.io/r/bripkens/lucene?branch=master) [![npm version](https://badge.fury.io/js/lucene.svg)](https://badge.fury.io/js/lucene)

Parse, modify and stringify lucene queries.

**[Installation](#installation) |**
**[Try It](https://runkit.com/npm/lucene) |**
**[Usage](#usage) |**
**[Grammar](#grammar) |**
**[History](#history)**

---

## Installation

```
npm install --save lucene
-or-
yarn add lucene
```

## Usage

```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
```


## Grammar
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.


## History
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.