Class QueryNodeProcessorImpl
- java.lang.Object
-
- org.apache.lucene.queryparser.flexible.core.processors.QueryNodeProcessorImpl
-
- All Implemented Interfaces:
QueryNodeProcessor
- Direct Known Subclasses:
AllowLeadingWildcardProcessor
,AnalyzerQueryNodeProcessor
,BooleanModifiersQueryNodeProcessor
,BooleanSingleChildOptimizationQueryNodeProcessor
,BoostQueryNodeProcessor
,DefaultPhraseSlopQueryNodeProcessor
,FuzzyQueryNodeProcessor
,LowercaseExpandedTermsQueryNodeProcessor
,MatchAllDocsQueryNodeProcessor
,MultiFieldQueryNodeProcessor
,MultiTermRewriteMethodProcessor
,NoChildOptimizationQueryNodeProcessor
,NumericQueryNodeProcessor
,NumericRangeQueryNodeProcessor
,OpenRangeQueryNodeProcessor
,PhraseSlopQueryNodeProcessor
,RemoveDeletedQueryNodesProcessor
,RemoveEmptyNonLeafQueryNodeProcessor
,TermRangeQueryNodeProcessor
,WildcardQueryNodeProcessor
public abstract class QueryNodeProcessorImpl extends Object implements QueryNodeProcessor
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 aQueryNode
tree.This class process
QueryNode
s from left to right in the tree. While it's walking down the tree, for every node,preProcessNode(QueryNode)
is invoked. After a node's children are processed,postProcessNode(QueryNode)
is invoked for that node.setChildrenOrder(List)
is invoked beforepostProcessNode(QueryNode)
only if the node has at least one child, insetChildrenOrder(List)
the implementor might redefine the children order or remove any children from the children list.Here is an example about how it process the nodes:
a / \ b e / \ c d
Here is the order the methods would be invoked for the tree described above:preProcessNode( a ); preProcessNode( b ); preProcessNode( c ); postProcessNode( c ); preProcessNode( d ); postProcessNode( d ); setChildrenOrder( bChildrenList ); postProcessNode( b ); preProcessNode( e ); postProcessNode( e ); setChildrenOrder( aChildrenList ); postProcessNode( a )
- See Also:
QueryNodeProcessor
-
-
Constructor Summary
Constructors Constructor Description QueryNodeProcessorImpl()
QueryNodeProcessorImpl(QueryConfigHandler queryConfigHandler)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description QueryConfigHandler
getQueryConfigHandler()
For reference about this method check:QueryNodeProcessor.getQueryConfigHandler()
.QueryNode
process(QueryNode queryTree)
Processes a query node tree.void
setQueryConfigHandler(QueryConfigHandler queryConfigHandler)
For reference about this method check:QueryNodeProcessor.setQueryConfigHandler(QueryConfigHandler)
.
-
-
-
Constructor Detail
-
QueryNodeProcessorImpl
public QueryNodeProcessorImpl()
-
QueryNodeProcessorImpl
public QueryNodeProcessorImpl(QueryConfigHandler queryConfigHandler)
-
-
Method Detail
-
process
public QueryNode process(QueryNode queryTree) throws QueryNodeException
Description copied from interface:QueryNodeProcessor
Processes a query node tree. It may return the same or another query tree. I should never returnnull
.- Specified by:
process
in interfaceQueryNodeProcessor
- Parameters:
queryTree
- tree root node- Returns:
- the processed query tree
- Throws:
QueryNodeException
-
setQueryConfigHandler
public void setQueryConfigHandler(QueryConfigHandler queryConfigHandler)
For reference about this method check:QueryNodeProcessor.setQueryConfigHandler(QueryConfigHandler)
.- Specified by:
setQueryConfigHandler
in interfaceQueryNodeProcessor
- Parameters:
queryConfigHandler
- the query configuration handler to be set.- See Also:
QueryNodeProcessor.getQueryConfigHandler()
,QueryConfigHandler
-
getQueryConfigHandler
public QueryConfigHandler getQueryConfigHandler()
For reference about this method check:QueryNodeProcessor.getQueryConfigHandler()
.- Specified by:
getQueryConfigHandler
in interfaceQueryNodeProcessor
- Returns:
- QueryConfigHandler the query configuration handler to be set.
- See Also:
QueryNodeProcessor.setQueryConfigHandler(QueryConfigHandler)
,QueryConfigHandler
-
-