Package org.apache.lucene.queryparser.flexible.standard.processors

# Class DefaultPhraseSlopQueryNodeProcessor

java.lang.Object
org.apache.lucene.queryparser.flexible.core.processors.QueryNodeProcessorImpl
org.apache.lucene.queryparser.flexible.standard.processors.DefaultPhraseSlopQueryNodeProcessor

All Implemented Interfaces:
  `QueryNodeProcessor`

public class DefaultPhraseSlopQueryNodeProcessor extends QueryNodeProcessorImpl
This processor verifies if `StandardQueryConfigHandler.ConfigurationKeys.PHRASE_SLOP` is defined in the `QueryConfigHandler`. If it is, it looks for every `TokenizedPhraseQueryNode` and `MultiPhraseQueryNode` that does not have any `SlopQueryNode` applied to it and creates an `SlopQueryNode` and apply to it. The new `SlopQueryNode` has the same slop value defined in the configuration.

See Also:
  - `SlopQueryNode`
  - `StandardQueryConfigHandler.ConfigurationKeys.PHRASE_SLOP`

## Constructor Summary

Constructors
Constructor
Description
`DefaultPhraseSlopQueryNodeProcessor()`

## Method Summary

Modifier and Type
Method
Description
`protected 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.
`QueryNode`
`process(QueryNode queryTree)`
Processes a query node tree.
`protected void`
`processChildren(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, setQueryConfigHandler`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### DefaultPhraseSlopQueryNodeProcessor

public DefaultPhraseSlopQueryNodeProcessor()

## Method Details

### process

public QueryNode process(QueryNode queryTree) throws QueryNodeException
Description copied from interface: `QueryNodeProcessor`
Processes a query node tree. It may return the same or another query tree. I should never return `null`.

Specified by:
  `process` in interface `QueryNodeProcessor`
Overrides:
  `process` in class `QueryNodeProcessorImpl`
Parameters:
  `queryTree` - tree root node
Returns:
  the processed query tree
Throws:
  `QueryNodeException`

### postProcessNode

protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException
Description copied from class: `QueryNodeProcessorImpl`
This method is invoked for every node when walking up the tree.

Specified by:
  `postProcessNode` in class `QueryNodeProcessorImpl`
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: `QueryNodeProcessorImpl`
This method is invoked for every node when walking down the tree.

Specified by:
  `preProcessNode` in class `QueryNodeProcessorImpl`
Parameters:
  `node` - the query node to be pre-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: `QueryNodeProcessorImpl`
This method is called every time a child is processed.

Overrides:
  `processChildren` in class `QueryNodeProcessorImpl`
Parameters:
  `queryTree` - the query node child to be processed
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: `QueryNodeProcessorImpl`
This method is invoked for every node that has at least on child. It's invoked right before `QueryNodeProcessorImpl.postProcessNode(QueryNode)` is invoked.

Specified by:
  `setChildrenOrder` in class `QueryNodeProcessorImpl`
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