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
This processor verifies if
If the analyzer return only one term, the returned term is set to the
If the analyzer return more than one term, a
If no term is returned by the analyzer a
StandardQueryConfigHandler.ConfigurationKeys.ANALYZER
is defined in the QueryConfigHandler
. If it is and the analyzer is not null
, it looks for every
FieldQueryNode
that is not WildcardQueryNode
, FuzzyQueryNode
or RangeQueryNode
contained in the query node tree, then it applies the analyzer to that FieldQueryNode
object. If the analyzer return only one term, the returned term is set to the
FieldQueryNode
and
it's returned. If the analyzer return more than one term, a
TokenizedPhraseQueryNode
or MultiPhraseQueryNode
is created, whether there is one or more terms at the same position, and
it's returned. If no term is returned by the analyzer a
NoTokenFoundQueryNode
object is returned.-
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.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
-
AnalyzerQueryNodeProcessor
public AnalyzerQueryNodeProcessor()
-
-
Method Details
-
process
Description copied from interface:QueryNodeProcessor
Processes a query node tree. It may return the same or another query tree. I should never returnnull
.- Specified by:
process
in interfaceQueryNodeProcessor
- Overrides:
process
in classQueryNodeProcessorImpl
- Parameters:
queryTree
- tree root node- Returns:
- the processed query tree
- Throws:
QueryNodeException
-
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
-
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
-