ProximityQueryNode (Lucene 10.5.1 queryparser API)
Description: declaration: package: org.apache.lucene.queryparser.flexible.core.nodes, class: ProximityQueryNode

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

# Class ProximityQueryNode

java.lang.Object
org.apache.lucene.queryparser.flexible.core.nodes.QueryNodeImpl
org.apache.lucene.queryparser.flexible.core.nodes.BooleanQueryNode
org.apache.lucene.queryparser.flexible.core.nodes.ProximityQueryNode

All Implemented Interfaces:
  `Cloneable`, `QueryNode`

public class ProximityQueryNode extends BooleanQueryNode
A `ProximityQueryNode` represents a query where the terms should meet specific distance conditions. (a b c) WITHIN [SENTENCE|PARAGRAPH|NUMBER] [INORDER] ("a" "b" "c") WITHIN [SENTENCE|PARAGRAPH|NUMBER] [INORDER]

TODO: Add this to the future standard Lucene parser/processor/builder

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `ProximityQueryNode.ProximityType`
  utility class containing the distance condition and number
  `static enum`
  `ProximityQueryNode.Type`
  Distance condition: PARAGRAPH, SENTENCE, or NUMBER

- ## Field Summary

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

  `PLAINTEXT_FIELD_NAME, toQueryStringIgnoreFields`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ProximityQueryNode(List<QueryNode> clauses, CharSequence field, ProximityQueryNode.Type type, boolean inorder)`
  `ProximityQueryNode(List<QueryNode> clauses, CharSequence field, ProximityQueryNode.Type type, int distance, boolean inorder)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `QueryNode`
  `cloneTree()`
  Recursive clone the QueryNode tree.
  `int`
  `getDistance()`
  `CharSequence`
  `getField()`
  returns null if the field was not specified in the query string
  `String`
  `getFieldAsString()`
  returns null if the field was not specified in the query string
  `ProximityQueryNode.Type`
  `getProximityType()`
  `boolean`
  `isInOrder()`
  `void`
  `setField(CharSequence 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`

- ## Constructor Details

  - ### ProximityQueryNode

    public ProximityQueryNode(List<QueryNode> clauses, CharSequence field, ProximityQueryNode.Type type, int distance, boolean inorder)
    Parameters:
      `clauses` - - QueryNode children
      `field` - - field name
      `type` - - type of proximity query
      `distance` - - positive integer that specifies the distance
      `inorder` - - true, if the tokens should be matched in the order of the clauses

  - ### ProximityQueryNode

    public ProximityQueryNode(List<QueryNode> clauses, CharSequence field, ProximityQueryNode.Type type, boolean inorder)
    Parameters:
      `clauses` - - QueryNode children
      `field` - - field name
      `type` - - type of proximity query
      `inorder` - - true, if the tokens should be matched in the order of the clauses

- ## Method Details

  - ### getProximityType

    public ProximityQueryNode.Type getProximityType()

  - ### 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 `BooleanQueryNode`
    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`
    Overrides:
      `toQueryString` in class `BooleanQueryNode`

  - ### 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 `BooleanQueryNode`
    Returns:
      the cloned tree
    Throws:
      `CloneNotSupportedException`

  - ### getDistance

    public int getDistance()
    Returns:
      the distance

  - ### getField

    public CharSequence getField()
    returns null if the field was not specified in the query string
    Returns:
      the field

  - ### getFieldAsString

    public String getFieldAsString()
    returns null if the field was not specified in the query string
    Returns:
      the field

  - ### setField

    public void setField(CharSequence field)
    Parameters:
      `field` - the field to set

  - ### isInOrder

    public boolean isInOrder()
    Returns:
      terms must be matched in the specified order