# Package org.apache.lucene.queryparser.flexible.core.processors

package org.apache.lucene.queryparser.flexible.core.processors
Interfaces and implementations used by query node processors

## Query Node Processors

The package `org.apache.lucene.queryParser.processors` contains interfaces that should be implemented by every query node processor.

The interface that every query node processor should implement is `QueryNodeProcessor`. A query node processor should be used to process a `QueryNode` tree. `QueryNode` trees can be programmatically created or generated by a text parser. See `org.apache.lucene.queryparser.flexible.core.parser` for more details about text parsers.

A query node processor should be used to process a `QueryNode` tree. `QueryNode` trees can be programmatically created or generated by a text parser. See `org.apache.lucene.queryparser.flexible.core.parser` for more details about text parsers.

A pipeline of processors can be assembled using `QueryNodeProcessorPipeline`.

Implementors may want to extend `QueryNodeProcessorImpl`, which simplifies the implementation, because it walks automatically the `QueryNode`. See `QueryNodeProcessorImpl` for more details.

Related Packages
Package
Description
org.apache.lucene.queryparser.flexible.core
Core classes of the flexible query parser framework.
Class
Description
NoChildOptimizationQueryNodeProcessor
A `NoChildOptimizationQueryNodeProcessor` removes every BooleanQueryNode, BoostQueryNode, TokenizedPhraseQueryNode or ModifierQueryNode that do not have a valid children.
QueryNodeProcessor
A `QueryNodeProcessor` is an interface for classes that process a `QueryNode` tree.
QueryNodeProcessorImpl
This is a default implementation for the `QueryNodeProcessor` interface, it's an abstract class, so it should be extended by classes that want to process a `QueryNode` tree.
QueryNodeProcessorPipeline
A `QueryNodeProcessorPipeline` class should be used to build a query node processor pipeline.
RemoveDeletedQueryNodesProcessor
A `QueryNodeProcessorPipeline` class removes every instance of `DeletedQueryNode` from a query node tree.