Package org.terrier.querying.parser
Class SingleTermQuery
- java.lang.Object
-
- org.terrier.querying.parser.Query
-
- org.terrier.querying.parser.SingleTermQuery
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
public class SingleTermQuery extends Query
Models a query of a single term. The single term queries can be of the forms:
term
+term
-term
field:term
The term can be optionally followed by a weight, as shown below:
term^weight
+term^weight
-term^weight
field:term^weight
where weight is a real number. If no weight is specified, then the default weight is 1.0.- Author:
- Vassilis Plachouras
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.terrier.querying.parser.Query
Query.ForEachQueryNode, Query.QTPBuilder, Query.QueryTermsParameter
-
-
Constructor Summary
Constructors Constructor Description SingleTermQuery()
An empty default constructor.SingleTermQuery(java.lang.String t)
Creates an instance of the class for the given query term.SingleTermQuery(java.lang.String t, int r)
Creates an instance of the class for the given query term that should be either required or not.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
applyTermPipeline(TermPipelineAccessor tpa)
Puts the query term in the given term pipeline, which is accessed through the given accessor object.java.lang.Object
clone()
Deep copy this Query objectint
getRequired()
Indicates whether the query term is required, or it isn't required to appear in the retrieved documents.java.lang.String
getTerm()
Gets the query term.protected void
getTerms(java.util.List<Query> alist)
Adds the query term in the given list of query terms.void
getTermsOf(java.lang.Class<? extends Query> c, java.util.List<Query> alist, boolean req)
An empty method because the single term query cannot have children.double
getWeight()
Returns the weight of the query term.boolean
obtainControls(java.util.Set<java.lang.String> allowed, java.util.Map<java.lang.String,java.lang.String> controls)
This object cannot contain any controls, so this method will always return false.void
obtainQueryTerms(MatchingQueryTerms terms, java.lang.String field, java.lang.Boolean required, java.lang.Double weight)
void
obtainQueryTerms(Query.QueryTermsParameter parameters)
java.lang.String
parseTree()
Returns the parse tree for the query as a stringvoid
setRequired(int r)
Sets the value of the required switch.void
setTerm(java.lang.String t)
Sets the string of the term.void
setWeight(double w)
Sets the weight of the query term.java.lang.String
toString()
Returns a string representation of the query term.-
Methods inherited from class org.terrier.querying.parser.Query
apply, obtainAllOf, setChild
-
-
-
-
Constructor Detail
-
SingleTermQuery
public SingleTermQuery()
An empty default constructor.
-
SingleTermQuery
public SingleTermQuery(java.lang.String t)
Creates an instance of the class for the given query term.- Parameters:
t
- String one query term.
-
SingleTermQuery
public SingleTermQuery(java.lang.String t, int r)
Creates an instance of the class for the given query term that should be either required or not.- Parameters:
t
- String one query term.r
- int indicates whether the term is required or not.
-
-
Method Detail
-
setRequired
public void setRequired(int r)
Sets the value of the required switch.- Parameters:
r
- int the value of the required switch.
-
setTerm
public void setTerm(java.lang.String t)
Sets the string of the term.- Parameters:
t
- String the query term.
-
getTerm
public java.lang.String getTerm()
Gets the query term.- Returns:
- String the query term.
-
getRequired
public int getRequired()
Indicates whether the query term is required, or it isn't required to appear in the retrieved documents. A value of zero means that this has been left unspecified.- Returns:
- int an indication of whether the query term should appear in the retrieved documents, or not.
-
toString
public java.lang.String toString()
Returns a string representation of the query term.
-
setWeight
public void setWeight(double w)
Sets the weight of the query term.- Parameters:
w
- double the weight of the query term.
-
getWeight
public double getWeight()
Returns the weight of the query term.- Returns:
- double the weight of the query term.
-
applyTermPipeline
public boolean applyTermPipeline(TermPipelineAccessor tpa)
Puts the query term in the given term pipeline, which is accessed through the given accessor object.- Overrides:
applyTermPipeline
in classQuery
- Parameters:
tpa
- TermPipelineAccessor the object that provides the term pipeline.- Returns:
- boolean true if the query is not empty, otherwise returns false.
-
obtainQueryTerms
public void obtainQueryTerms(MatchingQueryTerms terms, java.lang.String field, java.lang.Boolean required, java.lang.Double weight)
- Specified by:
obtainQueryTerms
in classQuery
-
obtainQueryTerms
public void obtainQueryTerms(Query.QueryTermsParameter parameters)
- Specified by:
obtainQueryTerms
in classQuery
-
getTerms
protected void getTerms(java.util.List<Query> alist)
Adds the query term in the given list of query terms.
-
obtainControls
public boolean obtainControls(java.util.Set<java.lang.String> allowed, java.util.Map<java.lang.String,java.lang.String> controls)
This object cannot contain any controls, so this method will always return false.- Overrides:
obtainControls
in classQuery
- Returns:
- false
-
getTermsOf
public void getTermsOf(java.lang.Class<? extends Query> c, java.util.List<Query> alist, boolean req)
An empty method because the single term query cannot have children.- Specified by:
getTermsOf
in classQuery
- Parameters:
c
- Class a class of queries.alist
- ArrayList the list of query terms.req
- boolean indicates whether the subqueries are required or not.
-
-