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 and Description
    `DefaultPhraseSlopQueryNodeProcessor()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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 Detail

    - #### DefaultPhraseSlopQueryNodeProcessor

          public DefaultPhraseSlopQueryNodeProcessor()

  - ### Method Detail

    - #### 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

Copyright © 2000-2022 Apache Software Foundation. All Rights Reserved.