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

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 Details

### SlopQueryNode

public SlopQueryNode(QueryNode query, int value)

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

## Method Details

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