Query nodes commonly used by query parser implementations.

## Query Nodes

The package `org.apache.lucene.queryParser.nodes` contains all the basic query nodes. The interface that represents a query node is {@link org.apache.lucene.queryparser.flexible.core.nodes.QueryNode}.

{@link org.apache.lucene.queryparser.flexible.core.nodes.QueryNode}s are used by the text parser to create a syntax tree. These nodes are designed to be used by UI or other text parsers. The default Lucene text parser is {@link org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser}, it implements Lucene's standard syntax.

{@link org.apache.lucene.queryparser.flexible.core.nodes.QueryNode} interface should be implemented by all query nodes, the class {@link org.apache.lucene.queryparser.flexible.core.nodes.QueryNodeImpl} implements {@link org.apache.lucene.queryparser.flexible.core.nodes.QueryNode} and is extended by all current query node implementations.

A query node tree can be printed to the a stream, and it generates a pseudo XML representation with all the nodes.

A query node tree can also generate a query string that can be parsed back by the original text parser, at this point only the standard lucene syntax is supported.

Grouping nodes:

- AndQueryNode - used for AND operator
- AnyQueryNode - used for ANY operator
- OrQueryNode - used for OR operator
- BooleanQueryNode - used when no operator is specified
- ModifierQueryNode - used for modifier operator
- GroupQueryNode - used for parenthesis
- BoostQueryNode - used for boost operator
- SlopQueryNode - phrase slop
- FuzzyQueryNode - fuzzy node
- TermRangeQueryNode - used for parametric field:[low_value TO high_value]
- ProximityQueryNode - used for proximity search
- NumericRangeQueryNode - used for numeric range search
- TokenizedPhraseQueryNode - used by tokenizers/lemmatizers/analyzers for phrases/autophrases

Leaf Nodes:

- FieldQueryNode - field/value node
- NumericQueryNode - used for numeric search
- PathQueryNode - {@link org.apache.lucene.queryparser.flexible.core.nodes.QueryNode} object used with path-like queries
- OpaqueQueryNode - Used as for part of the query that can be parsed by other parsers. schema/value
- PrefixWildcardQueryNode - non-phrase wildcard query
- QuotedFieldQUeryNode - regular phrase node
- WildcardQueryNode - non-phrase wildcard query

Utility Nodes:

- DeletedQueryNode - used by processors on optimizations
- MatchAllDocsQueryNode - used by processors on optimizations
- MatchNoDocsQueryNode - used by processors on optimizations
- NoTokenFoundQueryNode - used by tokenizers/lemmatizers/analyzers