@Override public String toString(String field) { // query.toString should be ok for the filter, too, if the query boost is 1.0f return query.toString(field); }
@Override public final boolean equals(final Object other) { return sameClassAs(other) && query.equals(((MultiTermQueryDocValuesWrapper) other).query); }
private static SpanRewriteMethod selectRewriteMethod(MultiTermQuery query) { MultiTermQuery.RewriteMethod method = query.getRewriteMethod(); if (method instanceof TopTermsRewrite) { final int pqsize = ((TopTermsRewrite) method).getSize(); return new TopTermsSpanBooleanQueryRewrite(pqsize); } else { return SCORING_SPAN_QUERY_REWRITE; } }
public static void setRewriteMethod(MultiTermQuery query, @Nullable MultiTermQuery.RewriteMethod rewriteMethod) { if (rewriteMethod == null) { return; } query.setRewriteMethod(rewriteMethod); }
@Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + maxEdits; result = prime * result + prefixLength; result = prime * result + maxExpansions; result = prime * result + (transpositions ? 0 : 1); result = prime * result + ((term == null) ? 0 : term.hashCode()); return result; }
@Override public String getField() { return query.getField(); }
public Query rewrite(IndexReader reader) throws IOException { FilteredTermEnum enumerator = getEnum(reader); BooleanQuery query = new BooleanQuery(true); try { do { Term t = enumerator.term(); if (t != null) { TermQuery tq = new TermQuery(t); // found a match tq.setBoost(getBoost() * enumerator.difference()); // set the boost query.add(tq, BooleanClause.Occur.SHOULD); // add to query } } while (enumerator.next()); } finally { enumerator.close(); } return query; }
/** * Returns the {@link MultiTermQuery}s {@link TermsEnum} * @see MultiTermQuery#getTermsEnum(Terms, AttributeSource) */ protected TermsEnum getTermsEnum(MultiTermQuery query, Terms terms, AttributeSource atts) throws IOException { return query.getTermsEnum(terms, atts); // allow RewriteMethod subclasses to pull a TermsEnum from the MTQ } }
final protected MultiTermQuery applyRewriteMethod(final MultiTermQuery query) { if (rewriteMethod != null && query != null) query.setRewriteMethod(rewriteMethod); return query; }
@Override public final int hashCode() { return 31 * classHash() + query.hashCode(); }
/** Returns the field name for this query */ public final String getField() { return query.getField(); }
public Query rewrite(IndexReader reader) throws IOException { FilteredTermEnum enumerator = getEnum(reader); BooleanQuery query = new BooleanQuery(); try { do { Term t = enumerator.term(); if (t != null) { TermQuery tq = new TermQuery(t); // found a match tq.setBoost(getBoost() * enumerator.difference()); // set the boost query.add(tq, false, false); // add to query } } while (enumerator.next()); } finally { enumerator.close(); } return query; }
private TermsEnum getTermsEnum(SortedSetDocValues fcsi) throws IOException { return query.getTermsEnum(new Terms() {
@Override public String toString(String field) { // query.toString should be ok for the filter, too, if the query boost is 1.0f return query.toString(field); }
@Override public boolean equals(Object other) { return sameClassAs(other) && query.equals(((SpanMultiTermQueryWrapper<?>) other).query); }
public static void setRewriteMethod(MultiTermQuery query, @Nullable MultiTermQuery.RewriteMethod rewriteMethod) { if (rewriteMethod == null) { return; } query.setRewriteMethod(rewriteMethod); }
@Override public int hashCode() { return classHash() * 31 + query.hashCode(); }
public int hashCode() { return term.hashCode() + Float.floatToRawIntBits(getBoost()); } }