Package org.apache.lucene.queryparser.flexible.core.nodes

## Class SlopQueryNode

- java.lang.Object
- - org.apache.lucene.queryparser.flexible.core.nodes.QueryNodeImpl
  - - org.apache.lucene.queryparser.flexible.core.nodes.SlopQueryNode

- All Implemented Interfaces:
    `Cloneable`, `FieldableNode`, `QueryNode`

      public class SlopQueryNode
      extends QueryNodeImpl
      implements FieldableNode

  A `SlopQueryNode` represents phrase query with a slop.

  From Lucene FAQ: Is there a way to use a proximity operator (like near or within) with Lucene? There is a variable called slop that allows you to perform NEAR/WITHIN-like queries. By default, slop is set to 0 so that only exact phrases will match. When using TextParser you can use this syntax to specify the slop: "doug cutting"~2 will find documents that contain "doug cutting" as well as ones that contain "cutting doug".

- - ### Field Summary

    - ### Fields inherited from class org.apache.lucene.queryparser.flexible.core.nodes.QueryNodeImpl

      `PLAINTEXT_FIELD_NAME, toQueryStringIgnoreFields`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SlopQueryNode​(QueryNode query, int value)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `QueryNode` | `cloneTree()` | Recursive clone the QueryNode tree The tags are not copied to the new tree when you call the cloneTree() method
    `QueryNode` | `getChild()` |
    `CharSequence` | `getField()` | Returns the field associated to the node and every node under it.
    `int` | `getValue()` |
    `void` | `setField​(CharSequence fieldName)` | Associates the node to a field.
    `CharSequence` | `toQueryString​(EscapeQuerySyntax escapeSyntaxParser)` | convert to a query string understood by the query parser
    `String` | `toString()` | Every implementation of this class should return pseudo xml like this:

    - ### Methods inherited from class org.apache.lucene.queryparser.flexible.core.nodes.QueryNodeImpl

      `add, add, allocate, clone, containsTag, getChildren, getParent, getTag, getTagMap, isDefaultField, isLeaf, isRoot, removeChildren, removeFromParent, set, setLeaf, setTag, unsetTag`

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

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

    - ### Methods inherited from interface org.apache.lucene.queryparser.flexible.core.nodes.QueryNode

      `add, add, containsTag, getChildren, getParent, getTag, getTagMap, isLeaf, removeChildren, removeFromParent, set, setTag, unsetTag`

- - ### Constructor Detail

    - #### SlopQueryNode

          public SlopQueryNode​(QueryNode query,
                               int value)

      Parameters:
        `query` - - QueryNode Tree with the phrase
        `value` - - slop value

  - ### Method Detail

    - #### getChild

          public QueryNode getChild()

    - #### getValue

          public int getValue()

    - #### toString

          public String toString()

      Description copied from class: `QueryNodeImpl`
      Every implementation of this class should return pseudo xml like this:

      For FieldQueryNode: <field start='1' end='2' field='subject' text='foo'/>

      Specified by:
        `toString` in interface `QueryNode`
      Overrides:
        `toString` in class `QueryNodeImpl`
      See Also:
        `QueryNode.toString()`

    - #### toQueryString

          public CharSequence toQueryString​(EscapeQuerySyntax escapeSyntaxParser)

      Description copied from interface: `QueryNode`
      convert to a query string understood by the query parser
      Specified by:
        `toQueryString` in interface `QueryNode`

    - #### cloneTree

          public QueryNode cloneTree()
                              throws CloneNotSupportedException

      Description copied from interface: `QueryNode`
      Recursive clone the QueryNode tree The tags are not copied to the new tree when you call the cloneTree() method
      Specified by:
        `cloneTree` in interface `QueryNode`
      Overrides:
        `cloneTree` in class `QueryNodeImpl`
      Returns:
        the cloned tree
      Throws:
        `CloneNotSupportedException`

    - #### getField

          public CharSequence getField()

      Description copied from interface: `FieldableNode`
      Returns the field associated to the node and every node under it.
      Specified by:
        `getField` in interface `FieldableNode`
      Returns:
        the field name

    - #### setField

          public void setField​(CharSequence fieldName)

      Description copied from interface: `FieldableNode`
      Associates the node to a field.
      Specified by:
        `setField` in interface `FieldableNode`
      Parameters:
        `fieldName` - the field name