org.apache.lucene.queryparser.flexible.core.nodes (Lucene 10.5.0 queryparser API)
Description: declaration: package: org.apache.lucene.queryparser.flexible.core.nodes

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

package org.apache.lucene.queryparser.flexible.core.nodes
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
- LegacyNumericRangeQueryNode - used for numeric range search
- TokenizedPhraseQueryNode - used by tokenizers/lemmatizers/analyzers for phrases/autophrases

Leaf Nodes:

- FieldQueryNode - field/value node
- LegacyNumericQueryNode - 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

- Related Packages
  Package
  Description
  org.apache.lucene.queryparser.flexible.core
  Core classes of the flexible query parser framework.
- Class
  Description
  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.
  FieldableNode
  A query node implements `FieldableNode` interface to indicate that its children and itself are associated to a specific field.
  FieldQueryNode
  A `FieldQueryNode` represents a element that contains field/text tuple
  FieldValuePairQueryNode<T>
  This interface should be implemented by `QueryNode` that holds a field and an arbitrary value.
  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.
  ModifierQueryNode.Modifier
  Modifier type: such as required (REQ), prohibited (NOT)
  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
  ProximityQueryNode.Type
  Distance condition: PARAGRAPH, SENTENCE, or NUMBER
  QueryNode
  A `QueryNode` is a interface implemented by all nodes on a QueryNode tree.
  QueryNodeImpl
  A `QueryNodeImpl` is the default implementation of the interface `QueryNode`
  QuotedFieldQueryNode
  A `QuotedFieldQueryNode` represents phrase query.
  RangeQueryNode<T extends FieldValuePairQueryNode<?>>
  This interface should be implemented by a `QueryNode` that represents some kind of range query.
  SlopQueryNode
  A `SlopQueryNode` represents phrase query with a slop.
  TextableQueryNode
  Interface for a node that has text as a `CharSequence`
  TokenizedPhraseQueryNode
  A `TokenizedPhraseQueryNode` represents a node created by a code that tokenizes/lemmatizes/analyzes.
  ValueQueryNode<T>
  This interface should be implemented by `QueryNode` that holds an arbitrary value.