org.apache.lucene.search
Class Query

java.lang.Object
  extended by org.apache.lucene.search.Query
All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
BooleanQuery, BoostingQuery, ConstantScoreQuery, CustomScoreQuery, DisjunctionMaxQuery, FilteredQuery, FuzzyLikeThisQuery, MatchAllDocsQuery, MoreLikeThisQuery, MultiPhraseQuery, MultiTermQuery, PhraseQuery, SpanQuery, TermQuery, ToChildBlockJoinQuery, ToParentBlockJoinQuery, ValueSourceQuery

public abstract class Query
extends Object
implements Serializable, Cloneable

The abstract base class for queries.

Instantiable subclasses are:

A parser for queries is contained in:

See Also:
Serialized Form

Constructor Summary
Query()
           
 
Method Summary
 Object clone()
          Returns a clone of this query.
 Query combine(Query[] queries)
          Expert: called when re-writing queries under MultiSearcher.
 Weight createWeight(Searcher searcher)
          Expert: Constructs an appropriate Weight implementation for this query.
 boolean equals(Object obj)
           
 void extractTerms(Set<Term> terms)
          Expert: adds all terms occurring in this query to the terms set.
 float getBoost()
          Gets the boost for this clause.
 Similarity getSimilarity(Searcher searcher)
          Deprecated. Instead of using "runtime" subclassing/delegation, subclass the Weight instead.
 int hashCode()
           
static Query mergeBooleanQueries(BooleanQuery... queries)
          Expert: merges the clauses of a set of BooleanQuery's into a single BooleanQuery.
 Query rewrite(IndexReader reader)
          Expert: called to re-write queries into primitive queries.
 void setBoost(float b)
          Sets the boost for this query clause to b.
 String toString()
          Prints a query to a string.
abstract  String toString(String field)
          Prints a query to a string, with field assumed to be the default field and omitted.
 Weight weight(Searcher searcher)
          Deprecated. never ever use this method in Weight implementations. Subclasses of Query should use createWeight(org.apache.lucene.search.Searcher), instead.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Query

public Query()
Method Detail

setBoost

public void setBoost(float b)
Sets the boost for this query clause to b. Documents matching this clause will (in addition to the normal weightings) have their score multiplied by b.


getBoost

public float getBoost()
Gets the boost for this clause. Documents matching this clause will (in addition to the normal weightings) have their score multiplied by b. The boost is 1.0 by default.


toString

public abstract String toString(String field)
Prints a query to a string, with field assumed to be the default field and omitted.

The representation used is one that is supposed to be readable by QueryParser. However, there are the following limitations:


toString

public String toString()
Prints a query to a string.

Overrides:
toString in class Object

createWeight

public Weight createWeight(Searcher searcher)
                    throws IOException
Expert: Constructs an appropriate Weight implementation for this query.

Only implemented by primitive queries, which re-write to themselves.

Throws:
IOException

weight

@Deprecated
public final Weight weight(Searcher searcher)
                    throws IOException
Deprecated. never ever use this method in Weight implementations. Subclasses of Query should use createWeight(org.apache.lucene.search.Searcher), instead.

Expert: Constructs and initializes a Weight for a top-level query.

Throws:
IOException

rewrite

public Query rewrite(IndexReader reader)
              throws IOException
Expert: called to re-write queries into primitive queries. For example, a PrefixQuery will be rewritten into a BooleanQuery that consists of TermQuerys.

Throws:
IOException

combine

public Query combine(Query[] queries)
Expert: called when re-writing queries under MultiSearcher. Create a single query suitable for use by all subsearchers (in 1-1 correspondence with queries). This is an optimization of the OR of all queries. We handle the common optimization cases of equal queries and overlapping clauses of boolean OR queries (as generated by MultiTermQuery.rewrite()). Be careful overriding this method as queries[0] determines which method will be called and is not necessarily of the same type as the other queries.


extractTerms

public void extractTerms(Set<Term> terms)
Expert: adds all terms occurring in this query to the terms set. Only works if this query is in its rewritten form.

Throws:
UnsupportedOperationException - if this query is not yet rewritten

mergeBooleanQueries

public static Query mergeBooleanQueries(BooleanQuery... queries)
Expert: merges the clauses of a set of BooleanQuery's into a single BooleanQuery.

A utility for use by combine(Query[]) implementations.


getSimilarity

@Deprecated
public Similarity getSimilarity(Searcher searcher)
Deprecated. Instead of using "runtime" subclassing/delegation, subclass the Weight instead.

Expert: Returns the Similarity implementation to be used for this query. Subclasses may override this method to specify their own Similarity implementation, perhaps one that delegates through that of the Searcher. By default the Searcher's Similarity implementation is returned.


clone

public Object clone()
Returns a clone of this query.

Overrides:
clone in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

equals

public boolean equals(Object obj)
Overrides:
equals in class Object