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
public class MultiFieldQueryNodeProcessor extends QueryNodeProcessorImpl
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 everyFieldableNodecontained in the query node tree. If aFieldableNodeis found, it checks if there is aStandardQueryConfigHandler.ConfigurationKeys.MULTI_FIELDSdefined in theQueryConfigHandler. If there is, theFieldableNodeis cloned N times and the clones are added to aBooleanQueryNodetogether with the original node. N is defined by the number of fields that it will be expanded to. TheBooleanQueryNodeis returned.
-
-
Constructor Summary
Constructors Constructor Description MultiFieldQueryNodeProcessor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected 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.protected voidprocessChildren(QueryNode queryTree)This method is called every time a child is processed.protected List<QueryNode>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
-
-
-
-
Method Detail
-
postProcessNode
protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException
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
-
processChildren
protected void processChildren(QueryNode queryTree) throws QueryNodeException
Description copied from class:QueryNodeProcessorImplThis method is called every time a child is processed.- Overrides:
processChildrenin classQueryNodeProcessorImpl- Parameters:
queryTree- the query node child to be processed- Throws:
QueryNodeException- if something goes wrong during the query node processing
-
preProcessNode
protected QueryNode preProcessNode(QueryNode node) throws QueryNodeException
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
protected List<QueryNode> setChildrenOrder(List<QueryNode> children) throws QueryNodeException
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
-
-