public abstract class Query extends Object
Instantiable subclasses are:
TermQuery
BooleanQuery
WildcardQuery
PhraseQuery
PrefixQuery
MultiPhraseQuery
FuzzyQuery
RegexpQuery
TermRangeQuery
PointRangeQuery
ConstantScoreQuery
DisjunctionMaxQuery
MatchAllDocsQuery
See also the family of Span Queries
and additional queries available in the Queries module
Constructor and Description |
---|
Query() |
Modifier and Type | Method and Description |
---|---|
protected int |
classHash()
Provides a constant integer for a given class, derived from the name of the class.
|
Weight |
createWeight(IndexSearcher searcher,
ScoreMode scoreMode,
float boost)
Expert: Constructs an appropriate Weight implementation for this query.
|
abstract boolean |
equals(Object obj)
Override and implement query instance equivalence properly in a subclass.
|
abstract int |
hashCode()
Override and implement query hash code properly in a subclass.
|
Query |
rewrite(IndexReader reader)
Expert: called to re-write queries into primitive queries.
|
protected boolean |
sameClassAs(Object other)
Utility method to check whether
other is not null and is exactly
of the same class as this object's class. |
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. |
void |
visit(QueryVisitor visitor)
Recurse through the query tree, visiting any child queries
|
public abstract String toString(String field)
field
assumed to be the
default field and omitted.public final String toString()
public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws IOException
Only implemented by primitive queries, which re-write to themselves.
scoreMode
- How the produced scorers will be consumed.boost
- The boost that is propagated by the parent queries.IOException
public Query rewrite(IndexReader reader) throws IOException
Callers are expected to call rewrite
multiple times if necessary, until the
rewritten query is the same as the original query.
IOException
IndexSearcher.rewrite(Query)
public void visit(QueryVisitor visitor)
visitor
- a QueryVisitor to be called by each query in the treepublic abstract boolean equals(Object obj)
QueryCache
works properly.
Typically a query will be equal to another only if it's an instance of
the same class and its document-filtering properties are identical that other
instance. Utility methods are provided for certain repetitive code.equals
in class Object
sameClassAs(Object)
,
classHash()
public abstract int hashCode()
QueryCache
works properly.hashCode
in class Object
equals(Object)
protected final boolean sameClassAs(Object other)
other
is not null and is exactly
of the same class as this object's class.
When this method is used in an implementation of equals(Object)
,
consider using classHash()
in the implementation
of hashCode()
to differentiate different classprotected final int classHash()
Object.hashCode()
is that classes may be
assigned different hash codes for each execution and we want hashes to be possibly
consistent to facilitate debugging.Copyright © 2000-2024 Apache Software Foundation. All Rights Reserved.