Class BooleanQuery2ModifierNodeProcessor
java.lang.Object
org.apache.lucene.queryparser.flexible.standard.processors.BooleanQuery2ModifierNodeProcessor
- All Implemented Interfaces:
QueryNodeProcessor
This processor is used to apply the correct
ModifierQueryNode to BooleanQueryNodes children. This is a variant of BooleanModifiersQueryNodeProcessor
which ignores precedence.
The StandardSyntaxParser knows the rules of precedence, but lucene does not. e.g.
(A AND B OR C AND D) ist treated like (+A +B +C +D).
This processor 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
default BooleanQueryNode, it checks the default operator is StandardQueryConfigHandler.Operator.AND, if it
is, the same operation when an AndQueryNode is found is applied to it. Each BooleanQueryNode which direct parent is also a BooleanQueryNode is removed (to ignore
the rules of precedence).
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) QueryConfigHandler(package private) static final String(package private) static final String(package private) static final Stringprivate Boolean -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate QueryNodeapplyModifier(QueryNode node, ModifierQueryNode.Modifier mod) protected voidReturns theQueryConfigHandlerassociated to the query tree if any, otherwise it returnsnullprotected booleanisDefaultBooleanQueryNode(QueryNode toTest) protected QueryNodepostProcessNode(QueryNode node) protected QueryNodepreProcessNode(QueryNode node) Processes a query node tree.protected voidprocessChildren(QueryNode queryTree) private QueryNodeprocessIteration(QueryNode queryTree) voidsetQueryConfigHandler(QueryConfigHandler queryConfigHandler) Sets theQueryConfigHandlerassociated to the query tree.protected void
-
Field Details
-
TAG_REMOVE
- See Also:
-
TAG_MODIFIER
- See Also:
-
TAG_BOOLEAN_ROOT
- See Also:
-
queryConfigHandler
QueryConfigHandler queryConfigHandler -
childrenBuffer
-
usingAnd
-
-
Constructor Details
-
BooleanQuery2ModifierNodeProcessor
public BooleanQuery2ModifierNodeProcessor()
-
-
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- Parameters:
queryTree- tree root node- Returns:
- the processed query tree
- Throws:
QueryNodeException
-
processChildren
- Throws:
QueryNodeException
-
processIteration
- Throws:
QueryNodeException
-
fillChildrenBufferAndApplyModifiery
-
postProcessNode
- Throws:
QueryNodeException
-
preProcessNode
- Throws:
QueryNodeException
-
isDefaultBooleanQueryNode
-
applyModifier
-
tagModifierButDoNotOverride
-
setQueryConfigHandler
Description copied from interface:QueryNodeProcessorSets theQueryConfigHandlerassociated to the query tree.- Specified by:
setQueryConfigHandlerin interfaceQueryNodeProcessor
-
getQueryConfigHandler
Description copied from interface:QueryNodeProcessorReturns theQueryConfigHandlerassociated to the query tree if any, otherwise it returnsnull- Specified by:
getQueryConfigHandlerin interfaceQueryNodeProcessor- Returns:
- the
QueryConfigHandlerassociated to the query tree if any, otherwise it returnsnull
-