mirror of https://github.com/apache/lucene.git
LUCENE-1713, LUCENE-1673: For completeness, add some getter methods to TermRangeFilter, to be similar like TermRangeQuery and NumericRangeFilter.
This also unifies the hashCode and equals methods in this family of queries. It also fixes a bug in hashCode and equals of NumericRangeQuery, missing the constantScoreRewrite property. TermRangeTermEnum was changed to have a consistent ctor with TermRangeQuery. git-svn-id: https://svn.apache.org/repos/asf/lucene/java/trunk@791263 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
9789089343
commit
fc44f0dc3c
|
@ -227,7 +227,8 @@ public final class NumericRangeQuery extends MultiTermQuery {
|
||||||
//@Override
|
//@Override
|
||||||
public final boolean equals(final Object o) {
|
public final boolean equals(final Object o) {
|
||||||
if (o==this) return true;
|
if (o==this) return true;
|
||||||
if (o==null) return false;
|
if (!super.equals(o))
|
||||||
|
return false;
|
||||||
if (o instanceof NumericRangeQuery) {
|
if (o instanceof NumericRangeQuery) {
|
||||||
final NumericRangeQuery q=(NumericRangeQuery)o;
|
final NumericRangeQuery q=(NumericRangeQuery)o;
|
||||||
return (
|
return (
|
||||||
|
@ -236,8 +237,7 @@ public final class NumericRangeQuery extends MultiTermQuery {
|
||||||
(q.max == null ? max == null : q.max.equals(max)) &&
|
(q.max == null ? max == null : q.max.equals(max)) &&
|
||||||
minInclusive == q.minInclusive &&
|
minInclusive == q.minInclusive &&
|
||||||
maxInclusive == q.maxInclusive &&
|
maxInclusive == q.maxInclusive &&
|
||||||
precisionStep == q.precisionStep &&
|
precisionStep == q.precisionStep
|
||||||
getBoost() == q.getBoost()
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -245,11 +245,11 @@ public final class NumericRangeQuery extends MultiTermQuery {
|
||||||
|
|
||||||
//@Override
|
//@Override
|
||||||
public final int hashCode() {
|
public final int hashCode() {
|
||||||
int hash = Float.floatToIntBits(getBoost()) ^ field.hashCode();
|
int hash = super.hashCode();
|
||||||
hash += precisionStep^0x64365465;
|
hash += field.hashCode()^0x4565fd66 + precisionStep^0x64365465;
|
||||||
if (min != null) hash += min.hashCode()^0x14fa55fb;
|
if (min != null) hash += min.hashCode()^0x14fa55fb;
|
||||||
if (max != null) hash += max.hashCode()^0x733fa5fe;
|
if (max != null) hash += max.hashCode()^0x733fa5fe;
|
||||||
return hash+
|
return hash +
|
||||||
(Boolean.valueOf(minInclusive).hashCode()^0x14fa55fb)+
|
(Boolean.valueOf(minInclusive).hashCode()^0x14fa55fb)+
|
||||||
(Boolean.valueOf(maxInclusive).hashCode()^0x733fa5fe);
|
(Boolean.valueOf(maxInclusive).hashCode()^0x733fa5fe);
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,4 +85,22 @@ public class TermRangeFilter extends MultiTermQueryWrapperFilter {
|
||||||
public static TermRangeFilter More(String fieldName, String lowerTerm) {
|
public static TermRangeFilter More(String fieldName, String lowerTerm) {
|
||||||
return new TermRangeFilter(fieldName, lowerTerm, null, true, false);
|
return new TermRangeFilter(fieldName, lowerTerm, null, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Returns the field name for this filter */
|
||||||
|
public String getField() { return ((TermRangeQuery) query).getField(); }
|
||||||
|
|
||||||
|
/** Returns the lower value of this range filter */
|
||||||
|
public String getLowerTerm() { return ((TermRangeQuery) query).getLowerTerm(); }
|
||||||
|
|
||||||
|
/** Returns the upper value of this range filter */
|
||||||
|
public String getUpperTerm() { return ((TermRangeQuery) query).getUpperTerm(); }
|
||||||
|
|
||||||
|
/** Returns <code>true</code> if the lower endpoint is inclusive */
|
||||||
|
public boolean includesLower() { return ((TermRangeQuery) query).includesLower(); }
|
||||||
|
|
||||||
|
/** Returns <code>true</code> if the upper endpoint is inclusive */
|
||||||
|
public boolean includesUpper() { return ((TermRangeQuery) query).includesUpper(); }
|
||||||
|
|
||||||
|
/** Returns the collator used to determine range inclusion, if any. */
|
||||||
|
public Collator getCollator() { return ((TermRangeQuery) query).getCollator(); }
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,9 +113,7 @@ public class TermRangeQuery extends MultiTermQuery {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns the field name for this query */
|
/** Returns the field name for this query */
|
||||||
public String getField() {
|
public String getField() { return field; }
|
||||||
return field;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Returns the lower value of this range query */
|
/** Returns the lower value of this range query */
|
||||||
public String getLowerTerm() { return lowerTerm; }
|
public String getLowerTerm() { return lowerTerm; }
|
||||||
|
@ -133,8 +131,8 @@ public class TermRangeQuery extends MultiTermQuery {
|
||||||
public Collator getCollator() { return collator; }
|
public Collator getCollator() { return collator; }
|
||||||
|
|
||||||
protected FilteredTermEnum getEnum(IndexReader reader) throws IOException {
|
protected FilteredTermEnum getEnum(IndexReader reader) throws IOException {
|
||||||
return new TermRangeTermEnum(reader, collator, field, lowerTerm,
|
return new TermRangeTermEnum(reader, field, lowerTerm,
|
||||||
upperTerm, includeLower, includeUpper);
|
upperTerm, includeLower, includeUpper, collator);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Prints a user-readable version of this query. */
|
/** Prints a user-readable version of this query. */
|
||||||
|
|
|
@ -50,10 +50,6 @@ public class TermRangeTermEnum extends FilteredTermEnum {
|
||||||
* explicitly specifying the term to exclude.)
|
* explicitly specifying the term to exclude.)
|
||||||
*
|
*
|
||||||
* @param reader
|
* @param reader
|
||||||
* @param collator
|
|
||||||
* The collator to use to collate index Terms, to determine their
|
|
||||||
* membership in the range bounded by <code>lowerTerm</code> and
|
|
||||||
* <code>upperTerm</code>.
|
|
||||||
* @param field
|
* @param field
|
||||||
* An interned field that holds both lower and upper terms.
|
* An interned field that holds both lower and upper terms.
|
||||||
* @param lowerTermText
|
* @param lowerTermText
|
||||||
|
@ -64,11 +60,15 @@ public class TermRangeTermEnum extends FilteredTermEnum {
|
||||||
* If true, the <code>lowerTerm</code> is included in the range.
|
* If true, the <code>lowerTerm</code> is included in the range.
|
||||||
* @param includeUpper
|
* @param includeUpper
|
||||||
* If true, the <code>upperTerm</code> is included in the range.
|
* If true, the <code>upperTerm</code> is included in the range.
|
||||||
|
* @param collator
|
||||||
|
* The collator to use to collate index Terms, to determine their
|
||||||
|
* membership in the range bounded by <code>lowerTerm</code> and
|
||||||
|
* <code>upperTerm</code>.
|
||||||
*
|
*
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
public TermRangeTermEnum(IndexReader reader, Collator collator, String field,
|
public TermRangeTermEnum(IndexReader reader, String field, String lowerTermText, String upperTermText,
|
||||||
String lowerTermText, String upperTermText, boolean includeLower, boolean includeUpper) throws IOException {
|
boolean includeLower, boolean includeUpper, Collator collator) throws IOException {
|
||||||
this.collator = collator;
|
this.collator = collator;
|
||||||
this.upperTermText = upperTermText;
|
this.upperTermText = upperTermText;
|
||||||
this.lowerTermText = lowerTermText;
|
this.lowerTermText = lowerTermText;
|
||||||
|
|
Loading…
Reference in New Issue