org.apache.lucene.queryParser.core.nodes
Class ProximityQueryNode

java.lang.Object
  extended by org.apache.lucene.queryParser.core.nodes.QueryNodeImpl
      extended by org.apache.lucene.queryParser.core.nodes.BooleanQueryNode
          extended by org.apache.lucene.queryParser.core.nodes.ProximityQueryNode
All Implemented Interfaces:
Serializable, 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

See Also:
Serialized Form

Nested Class Summary
static class ProximityQueryNode.ProximityType
           
static class ProximityQueryNode.Type
           
 
Field Summary
 
Fields inherited from class org.apache.lucene.queryParser.core.nodes.QueryNodeImpl
PLAINTEXT_FIELD_NAME, toQueryStringIgnoreFields
 
Constructor Summary
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
 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:
 
Methods inherited from class org.apache.lucene.queryParser.core.nodes.QueryNodeImpl
add, add, allocate, clone, containsTag, containsTag, getChildren, getParent, getTag, getTag, getTagMap, getTags, isDefaultField, isLeaf, isRoot, set, setLeaf, setTag, setTag, unsetTag, 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:

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