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 and Description
    --- | ---
    `static class` | `ProximityQueryNode.ProximityType` utility class containing the distance condition and number
    `static class` | `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 and 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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `QueryNode` | `cloneTree()` Recursive clone the QueryNode tree The tags are not copied to the new tree when you call the cloneTree() method
    `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: For FieldQueryNode: <field start='1' end='2' field='subject' text='foo'/>

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

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

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

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