Class BooleanModifiersQueryNodeProcessor
java.lang.Object
org.apache.lucene.queryparser.flexible.core.processors.QueryNodeProcessorImpl
org.apache.lucene.queryparser.flexible.precedence.processors.BooleanModifiersQueryNodeProcessor
- All Implemented Interfaces:
QueryNodeProcessor
This processor is used to apply the correct
ModifierQueryNode to BooleanQueryNodes children.
It walks through the query node tree looking for BooleanQueryNodes. If an AndQueryNode is found, every child, which is not a ModifierQueryNode or the ModifierQueryNode is ModifierQueryNode.Modifier.MOD_NONE, becomes a ModifierQueryNode.Modifier.MOD_REQ. For any
other BooleanQueryNode which is not an OrQueryNode, it checks the default
operator is StandardQueryConfigHandler.Operator.AND, if it is, the same operation when an AndQueryNode is
found is applied to it.
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected QueryNodepostProcessNode(QueryNode node) This method is invoked for every node when walking up the tree.protected QueryNodepreProcessNode(QueryNode node) This method is invoked for every node when walking down the tree.Processes a query node tree.setChildrenOrder(List<QueryNode> children) This method is invoked for every node that has at least on child.Methods inherited from class org.apache.lucene.queryparser.flexible.core.processors.QueryNodeProcessorImpl
getQueryConfigHandler, processChildren, setQueryConfigHandler
-
Constructor Details
-
BooleanModifiersQueryNodeProcessor
public BooleanModifiersQueryNodeProcessor()
-
-
Method Details
-
process
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- Overrides:
processin classQueryNodeProcessorImpl- Parameters:
queryTree- tree root node- Returns:
- the processed query tree
- Throws:
QueryNodeException
-
postProcessNode
Description copied from class:QueryNodeProcessorImplThis method is invoked for every node when walking up the tree.- Specified by:
postProcessNodein classQueryNodeProcessorImpl- 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
Description copied from class:QueryNodeProcessorImplThis method is invoked for every node when walking down the tree.- Specified by:
preProcessNodein classQueryNodeProcessorImpl- 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
Description copied from class:QueryNodeProcessorImplThis method is invoked for every node that has at least on child. It's invoked right beforeQueryNodeProcessorImpl.postProcessNode(QueryNode)is invoked.- Specified by:
setChildrenOrderin classQueryNodeProcessorImpl- 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
-