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:
java.lang.Cloneable,QueryNode
public class ProximityQueryNode extends BooleanQueryNode
AProximityQueryNoderepresents 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 classProximityQueryNode.ProximityTypeutility class containing the distance condition and numberstatic classProximityQueryNode.TypeDistance condition: PARAGRAPH, SENTENCE, or NUMBER
-
Field Summary
Fields Modifier and Type Field Description private intdistanceprivate java.lang.CharSequencefieldprivate booleaninorderprivate ProximityQueryNode.TypeproximityType-
Fields inherited from class org.apache.lucene.queryparser.flexible.core.nodes.QueryNodeImpl
PLAINTEXT_FIELD_NAME, toQueryStringIgnoreFields
-
-
Constructor Summary
Constructors Constructor Description ProximityQueryNode(java.util.List<QueryNode> clauses, java.lang.CharSequence field, ProximityQueryNode.Type type, boolean inorder)ProximityQueryNode(java.util.List<QueryNode> clauses, java.lang.CharSequence field, ProximityQueryNode.Type type, int distance, boolean inorder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static voidclearFields(java.util.List<QueryNode> nodes, java.lang.CharSequence field)QueryNodecloneTree()Recursive clone the QueryNode tree The tags are not copied to the new tree when you call the cloneTree() methodintgetDistance()java.lang.CharSequencegetField()returns null if the field was not specified in the query stringjava.lang.StringgetFieldAsString()returns null if the field was not specified in the query stringProximityQueryNode.TypegetProximityType()booleanisInOrder()voidsetField(java.lang.CharSequence field)java.lang.CharSequencetoQueryString(EscapeQuerySyntax escapeSyntaxParser)convert to a query string understood by the query parserjava.lang.StringtoString()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
-
-
-
-
Field Detail
-
proximityType
private ProximityQueryNode.Type proximityType
-
distance
private int distance
-
inorder
private boolean inorder
-
field
private java.lang.CharSequence field
-
-
Constructor Detail
-
ProximityQueryNode
public ProximityQueryNode(java.util.List<QueryNode> clauses, java.lang.CharSequence field, ProximityQueryNode.Type type, int distance, boolean inorder)
- Parameters:
clauses- - QueryNode childrenfield- - field nametype- - type of proximity querydistance- - positive integer that specifies the distanceinorder- - true, if the tokens should be matched in the order of the clauses
-
ProximityQueryNode
public ProximityQueryNode(java.util.List<QueryNode> clauses, java.lang.CharSequence field, ProximityQueryNode.Type type, boolean inorder)
- Parameters:
clauses- - QueryNode childrenfield- - field nametype- - type of proximity queryinorder- - true, if the tokens should be matched in the order of the clauses
-
-
Method Detail
-
clearFields
private static void clearFields(java.util.List<QueryNode> nodes, java.lang.CharSequence field)
-
getProximityType
public ProximityQueryNode.Type getProximityType()
-
toString
public java.lang.String toString()
Description copied from class:QueryNodeImplEvery implementation of this class should return pseudo xml like this: For FieldQueryNode: <field start='1' end='2' field='subject' text='foo'/>- Specified by:
toStringin interfaceQueryNode- Overrides:
toStringin classBooleanQueryNode- See Also:
QueryNode.toString()
-
toQueryString
public java.lang.CharSequence toQueryString(EscapeQuerySyntax escapeSyntaxParser)
Description copied from interface:QueryNodeconvert to a query string understood by the query parser- Specified by:
toQueryStringin interfaceQueryNode- Overrides:
toQueryStringin classBooleanQueryNode
-
cloneTree
public QueryNode cloneTree() throws java.lang.CloneNotSupportedException
Description copied from interface:QueryNodeRecursive clone the QueryNode tree The tags are not copied to the new tree when you call the cloneTree() method- Specified by:
cloneTreein interfaceQueryNode- Overrides:
cloneTreein classBooleanQueryNode- Returns:
- the cloned tree
- Throws:
java.lang.CloneNotSupportedException
-
getDistance
public int getDistance()
- Returns:
- the distance
-
getField
public java.lang.CharSequence getField()
returns null if the field was not specified in the query string- Returns:
- the field
-
getFieldAsString
public java.lang.String getFieldAsString()
returns null if the field was not specified in the query string- Returns:
- the field
-
setField
public void setField(java.lang.CharSequence field)
- Parameters:
field- the field to set
-
isInOrder
public boolean isInOrder()
- Returns:
- terms must be matched in the specified order
-
-