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

Query nodes commonly used by query parser implementations.

See:
Description

Interface Summary
FieldableNode: A query node implements `FieldableNode` interface to indicate that its children and itself are associated to a specific field.
FieldValuePairQueryNode<T>: This interface should be implemented by `QueryNode` that holds a field and an arbitrary value.
QueryNode: A `QueryNode` is a interface implemented by all nodes on a QueryNode tree.
RangeQueryNode<T extends FieldValuePairQueryNode<?>>: This interface should be implemented by a `QueryNode` that represents some kind of range query.
TextableQueryNode: Interface for a node that has text as a `CharSequence`
ValueQueryNode<T>: This interface should be implemented by `QueryNode` that holds an arbitrary value.

Class Summary
AndQueryNode: A `AndQueryNode` represents an AND boolean operation performed on a list of nodes.
AnyQueryNode: A `AnyQueryNode` represents an ANY operator performed on a list of nodes.
BooleanQueryNode: A `BooleanQueryNode` represents a list of elements which do not have an explicit boolean operator defined between them.
BoostQueryNode: A `BoostQueryNode` boosts the QueryNode tree which is under this node.
DeletedQueryNode: A `DeletedQueryNode` represents a node that was deleted from the query node tree.
FieldQueryNode: A `FieldQueryNode` represents a element that contains field/text tuple
FuzzyQueryNode: A `FuzzyQueryNode` represents a element that contains field/text/similarity tuple
GroupQueryNode: A `GroupQueryNode` represents a location where the original user typed real parenthesis on the query string.
MatchAllDocsQueryNode: A `MatchAllDocsQueryNode` indicates that a query node tree or subtree will match all documents if executed in the index.
MatchNoDocsQueryNode: A `MatchNoDocsQueryNode` indicates that a query node tree or subtree will not match any documents if executed in the index.
ModifierQueryNode: A `ModifierQueryNode` indicates the modifier value (+,-,?,NONE) for each term on the query string.
NoTokenFoundQueryNode: A `NoTokenFoundQueryNode` is used if a term is convert into no tokens by the tokenizer/lemmatizer/analyzer (null).
OpaqueQueryNode: A `OpaqueQueryNode` is used for specify values that are not supposed to be parsed by the parser.
OrQueryNode: A `OrQueryNode` represents an OR boolean operation performed on a list of nodes.
PathQueryNode: A `PathQueryNode` is used to store queries like /company/USA/California /product/shoes/brown.
PathQueryNode.QueryText: Term text with a beginning and end position
PhraseSlopQueryNode: Query node for `PhraseQuery`'s slop factor.
ProximityQueryNode: A `ProximityQueryNode` represents a query where the terms should meet specific distance conditions.
ProximityQueryNode.ProximityType: utility class containing the distance condition and number
QueryNodeImpl: A `QueryNodeImpl` is the default implementation of the interface `QueryNode`
QuotedFieldQueryNode: A `QuotedFieldQueryNode` represents phrase query.
SlopQueryNode: A `SlopQueryNode` represents phrase query with a slop.
TokenizedPhraseQueryNode: A `TokenizedPhraseQueryNode` represents a node created by a code that tokenizes/lemmatizes/analyzes.

Enum Summary
ModifierQueryNode.Modifier: Modifier type: such as required (REQ), prohibited (NOT)
ProximityQueryNode.Type: Distance condition: PARAGRAPH, SENTENCE, or NUMBER

## Package org.apache.lucene.queryparser.flexible.core.nodes Description

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

`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 `StandardSyntaxParser`, it implements Lucene's standard syntax.

`QueryNode` interface should be implemented by all query nodes, the class `QueryNodeImpl` implements `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 - `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

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.