Class AnalyzerQueryNodeProcessor
- java.lang.Object
-
- org.apache.lucene.queryparser.flexible.core.processors.QueryNodeProcessorImpl
-
- org.apache.lucene.queryparser.flexible.standard.processors.AnalyzerQueryNodeProcessor
-
- All Implemented Interfaces:
QueryNodeProcessor
public class AnalyzerQueryNodeProcessor extends QueryNodeProcessorImpl
This processor verifies ifStandardQueryConfigHandler.ConfigurationKeys.ANALYZERis defined in theQueryConfigHandler. If it is and the analyzer is notnull, it looks for everyFieldQueryNodethat is notWildcardQueryNode,FuzzyQueryNodeorRangeQueryNodecontained in the query node tree, then it applies the analyzer to thatFieldQueryNodeobject.
If the analyzer return only one term, the returned term is set to theFieldQueryNodeand it's returned.
If the analyzer return more than one term, aTokenizedPhraseQueryNodeorMultiPhraseQueryNodeis created, whether there is one or more terms at the same position, and it's returned.
If no term is returned by the analyzer aNoTokenFoundQueryNodeobject is returned.
-
-
Constructor Summary
Constructors Constructor Description AnalyzerQueryNodeProcessor()
-
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.QueryNodeprocess(QueryNode queryTree)Processes a query node tree.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, processChildren, setQueryConfigHandler
-
-
-
-
Method Detail
-
process
public QueryNode process(QueryNode queryTree) throws QueryNodeException
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
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
-
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
-
-