Class MultiFieldQueryNodeProcessor
java.lang.Object
org.apache.lucene.queryparser.flexible.core.processors.QueryNodeProcessorImpl
org.apache.lucene.queryparser.flexible.standard.processors.MultiFieldQueryNodeProcessor
- All Implemented Interfaces:
QueryNodeProcessor
This processor is used to expand terms so the query looks for the same term in different fields.
It also boosts a query based on its field.
This processor looks for every
This processor looks for every
FieldableNode
contained in the query node tree. If a
FieldableNode
is found, it checks if there is a StandardQueryConfigHandler.ConfigurationKeys.MULTI_FIELDS
defined in the QueryConfigHandler
. If there is, the FieldableNode
is cloned N
times and the clones are added to a BooleanQueryNode
together with the original node. N
is defined by the number of fields that it will be expanded to. The BooleanQueryNode
is
returned.- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected QueryNode
postProcessNode
(QueryNode node) This method is invoked for every node when walking up the tree.protected QueryNode
preProcessNode
(QueryNode node) This method is invoked for every node when walking down the tree.protected void
processChildren
(QueryNode queryTree) This method is called every time a child is processed.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, process, setQueryConfigHandler
-
Constructor Details
-
MultiFieldQueryNodeProcessor
public MultiFieldQueryNodeProcessor()
-
-
Method Details
-
postProcessNode
Description copied from class:QueryNodeProcessorImpl
This method is invoked for every node when walking up the tree.- Specified by:
postProcessNode
in 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
-
processChildren
Description copied from class:QueryNodeProcessorImpl
This method is called every time a child is processed.- Overrides:
processChildren
in classQueryNodeProcessorImpl
- Parameters:
queryTree
- the query node child to be processed- Throws:
QueryNodeException
- if something goes wrong during the query node processing
-
preProcessNode
Description copied from class:QueryNodeProcessorImpl
This method is invoked for every node when walking down the tree.- Specified by:
preProcessNode
in 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:QueryNodeProcessorImpl
This method is invoked for every node that has at least on child. It's invoked right beforeQueryNodeProcessorImpl.postProcessNode(QueryNode)
is invoked.- Specified by:
setChildrenOrder
in 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
-