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
QueryNodeProcessorinterface, it's an abstract class, so it should be extended by classes that want to process aQueryNodetree.This class process
QueryNodes 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 dHere 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 QueryConfigHandlergetQueryConfigHandler()For reference about this method check:QueryNodeProcessor.getQueryConfigHandler().QueryNodeprocess(QueryNode queryTree)Processes a query node tree.voidsetQueryConfigHandler(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:QueryNodeProcessorProcesses a query node tree. It may return the same or another query tree. I should never returnnull.- Specified by:
processin 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:
setQueryConfigHandlerin 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:
getQueryConfigHandlerin interfaceQueryNodeProcessor- Returns:
- QueryConfigHandler the query configuration handler to be set.
- See Also:
QueryNodeProcessor.setQueryConfigHandler(QueryConfigHandler),QueryConfigHandler
-
-