org.apache.lucene.queryParser.standard.processors
Class BooleanSingleChildOptimizationQueryNodeProcessor
java.lang.Object
org.apache.lucene.queryParser.core.processors.QueryNodeProcessorImpl
org.apache.lucene.queryParser.standard.processors.BooleanSingleChildOptimizationQueryNodeProcessor
- All Implemented Interfaces:
- QueryNodeProcessor
public class BooleanSingleChildOptimizationQueryNodeProcessor
- extends QueryNodeProcessorImpl
This processor removes every BooleanQueryNode
that contains only one
child and returns this child. If this child is ModifierQueryNode
that
was defined by the user. A modifier is not defined by the user when it's a
BooleanModifierNode
- See Also:
ModifierQueryNode
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BooleanSingleChildOptimizationQueryNodeProcessor
public BooleanSingleChildOptimizationQueryNodeProcessor()
postProcessNode
protected QueryNode postProcessNode(QueryNode node)
throws QueryNodeException
- Description copied from class:
QueryNodeProcessorImpl
- This method is invoked for every node when walking up the tree.
- Specified by:
postProcessNode
in class QueryNodeProcessorImpl
- Parameters:
node
- node the query node to be post-processed
- Returns:
- a query node
- Throws:
QueryNodeException
- if something goes wrong during the query node processing
preProcessNode
protected QueryNode preProcessNode(QueryNode node)
throws QueryNodeException
- Description copied from class:
QueryNodeProcessorImpl
- This method is invoked for every node when walking down the tree.
- Specified by:
preProcessNode
in class QueryNodeProcessorImpl
- Parameters:
node
- the query node to be pre-processed
- Returns:
- a query node
- Throws:
QueryNodeException
- if something goes wrong during the query node processing
setChildrenOrder
protected List<QueryNode> setChildrenOrder(List<QueryNode> children)
throws QueryNodeException
- Description copied from class:
QueryNodeProcessorImpl
- This method is invoked for every node that has at least on child. It's
invoked right before
QueryNodeProcessorImpl.postProcessNode(QueryNode)
is invoked.
- Specified by:
setChildrenOrder
in class QueryNodeProcessorImpl
- Parameters:
children
- the list containing all current node's children
- Returns:
- a new list containing all children that should be set to the
current node
- Throws:
QueryNodeException
- if something goes wrong during the query node processing