You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2015/04/16 17:56:14 UTC
svn commit: r1674100 [1/2] - in /lucene/dev/branches/branch_5x: ./ lucene/
lucene/core/ lucene/core/src/java/org/apache/lucene/search/
lucene/core/src/java/org/apache/lucene/search/payloads/
lucene/core/src/java/org/apache/lucene/search/spans/ lucene/c...
Author: jpountz
Date: Thu Apr 16 15:56:13 2015
New Revision: 1674100
URL: http://svn.apache.org/r1674100
Log:
LUCENE-6425: Replaced Query.extractTerms with Weight.extractTerms.
Modified:
lucene/dev/branches/branch_5x/ (props changed)
lucene/dev/branches/branch_5x/lucene/ (props changed)
lucene/dev/branches/branch_5x/lucene/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_5x/lucene/core/ (props changed)
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/BooleanWeight.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/CachingWrapperQuery.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/ConstantScoreQuery.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/ConstantScoreWeight.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/DisjunctionMaxQuery.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/Filter.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/FilteredQuery.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/LRUQueryCache.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MatchAllDocsQuery.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MultiPhraseQuery.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MultiTermQueryConstantScoreWrapper.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/Query.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/TermQuery.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/Weight.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadSpanUtil.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanQuery.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanWeight.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestNeedsScores.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/JustCompileSearchSpans.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/MultiSpansWrapper.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java
lucene/dev/branches/branch_5x/lucene/facet/ (props changed)
lucene/dev/branches/branch_5x/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysQuery.java
lucene/dev/branches/branch_5x/lucene/highlighter/ (props changed)
lucene/dev/branches/branch_5x/lucene/highlighter/src/java/org/apache/lucene/search/highlight/QueryTermExtractor.java
lucene/dev/branches/branch_5x/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java
lucene/dev/branches/branch_5x/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java
lucene/dev/branches/branch_5x/lucene/join/ (props changed)
lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/GlobalOrdinalsQuery.java
lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/GlobalOrdinalsWithScoreQuery.java
lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/TermsIncludingScoreQuery.java
lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java
lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java
lucene/dev/branches/branch_5x/lucene/queries/ (props changed)
lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/CommonTermsQuery.java
lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java
lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/TermsQuery.java
lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/BoostedQuery.java
lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java
lucene/dev/branches/branch_5x/lucene/sandbox/ (props changed)
lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java
lucene/dev/branches/branch_5x/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java
lucene/dev/branches/branch_5x/lucene/spatial/ (props changed)
lucene/dev/branches/branch_5x/lucene/spatial/src/java/org/apache/lucene/spatial/composite/CompositeVerifyQuery.java
lucene/dev/branches/branch_5x/lucene/test-framework/ (props changed)
lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingQuery.java
lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingWeight.java
lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/RandomApproximationQuery.java
lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java
lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/spans/AssertingSpanQuery.java
lucene/dev/branches/branch_5x/solr/ (props changed)
lucene/dev/branches/branch_5x/solr/core/ (props changed)
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/schema/LatLonType.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/SolrConstantScoreQuery.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/WrappedQuery.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/join/IgnoreAcceptDocsQuery.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/update/DeleteByQueryWrapper.java
Modified: lucene/dev/branches/branch_5x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/CHANGES.txt?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_5x/lucene/CHANGES.txt Thu Apr 16 15:56:13 2015
@@ -80,6 +80,9 @@ API Changes
* LUCENE-6410: Removed unused "reuse" parameter to
Terms.iterator. (Robert Muir, Mike McCandless)
+* LUCENE-6425: Replaced Query.extractTerms with Weight.extractTerms.
+ (Adrien Grand)
+
Other
* LUCENE-6413: Test runner should report the number of suites completed/
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java Thu Apr 16 15:56:13 2015
@@ -233,16 +233,6 @@ public class BooleanQuery extends Query
}
}
- // inherit javadoc
- @Override
- public void extractTerms(Set<Term> terms) {
- for (BooleanClause clause : clauses) {
- if (clause.isScoring()) {
- clause.getQuery().extractTerms(terms);
- }
- }
- }
-
@Override @SuppressWarnings("unchecked")
public BooleanQuery clone() {
BooleanQuery clone = (BooleanQuery)super.clone();
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/BooleanWeight.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/BooleanWeight.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/BooleanWeight.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/BooleanWeight.java Thu Apr 16 15:56:13 2015
@@ -22,8 +22,10 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import org.apache.lucene.index.LeafReaderContext;
+import org.apache.lucene.index.Term;
import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.util.Bits;
@@ -77,6 +79,17 @@ public class BooleanWeight extends Weigh
}
}
+ @Override
+ public void extractTerms(Set<Term> terms) {
+ int i = 0;
+ for (BooleanClause clause : query.clauses()) {
+ if (clause.isScoring() || (needsScores == false && clause.isProhibited() == false)) {
+ weights.get(i).extractTerms(terms);
+ }
+ i++;
+ }
+ }
+
@Override
public float getValueForNormalization() throws IOException {
float sum = 0.0f;
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/CachingWrapperQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/CachingWrapperQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/CachingWrapperQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/CachingWrapperQuery.java Thu Apr 16 15:56:13 2015
@@ -23,11 +23,13 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.WeakHashMap;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.LeafReader;
import org.apache.lucene.index.LeafReaderContext;
+import org.apache.lucene.index.Term;
import org.apache.lucene.util.Accountable;
import org.apache.lucene.util.Accountables;
import org.apache.lucene.util.Bits;
@@ -116,7 +118,12 @@ public class CachingWrapperQuery extends
policy.onUse(weight.getQuery());
return new ConstantScoreWeight(weight.getQuery()) {
@Override
- protected Scorer scorer(LeafReaderContext context, final Bits acceptDocs, float score) throws IOException {
+ public void extractTerms(Set<Term> terms) {
+ weight.extractTerms(terms);
+ }
+
+ @Override
+ protected Scorer scorer(LeafReaderContext context, final Bits acceptDocs, final float score) throws IOException {
final LeafReader reader = context.reader();
final Object key = reader.getCoreCacheKey();
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/ConstantScoreQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/ConstantScoreQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/ConstantScoreQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/ConstantScoreQuery.java Thu Apr 16 15:56:13 2015
@@ -62,16 +62,6 @@ public class ConstantScoreQuery extends
return this;
}
- @Override
- public void extractTerms(Set<Term> terms) {
- // NOTE: ConstantScoreQuery used to wrap either a query or a filter. Now
- // that filter extends Query, we need to only extract terms when the query
- // is not a filter if we do not want to hit an UnsupportedOperationException
- if (query instanceof Filter == false) {
- query.extractTerms(terms);
- }
- }
-
protected class ConstantWeight extends Weight {
private final Weight innerWeight;
private float queryNorm;
@@ -83,6 +73,11 @@ public class ConstantScoreQuery extends
}
@Override
+ public void extractTerms(Set<Term> terms) {
+ // no-op
+ }
+
+ @Override
public float getValueForNormalization() throws IOException {
// we calculate sumOfSquaredWeights of the inner weight, but ignore it (just to initialize everything)
innerWeight.getValueForNormalization();
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/ConstantScoreWeight.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/ConstantScoreWeight.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/ConstantScoreWeight.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/ConstantScoreWeight.java Thu Apr 16 15:56:13 2015
@@ -18,8 +18,10 @@ package org.apache.lucene.search;
*/
import java.io.IOException;
+import java.util.Set;
import org.apache.lucene.index.LeafReaderContext;
+import org.apache.lucene.index.Term;
import org.apache.lucene.util.Bits;
/**
@@ -37,6 +39,13 @@ public abstract class ConstantScoreWeigh
}
@Override
+ public void extractTerms(Set<Term> terms) {
+ // most constant-score queries don't wrap index terms
+ // eg. geo filters, doc values queries, ...
+ // override if your constant-score query does wrap terms
+ }
+
+ @Override
public final float getValueForNormalization() throws IOException {
queryWeight = getQuery().getBoost();
return queryWeight * queryWeight;
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/DisjunctionMaxQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/DisjunctionMaxQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/DisjunctionMaxQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/DisjunctionMaxQuery.java Thu Apr 16 15:56:13 2015
@@ -127,6 +127,13 @@ public class DisjunctionMaxQuery extends
this.needsScores = needsScores;
}
+ @Override
+ public void extractTerms(Set<Term> terms) {
+ for (Weight weight : weights) {
+ weight.extractTerms(terms);
+ }
+ }
+
/** Compute the sub of squared weights of us applied to our subqueries. Used for normalization. */
@Override
public float getValueForNormalization() throws IOException {
@@ -237,14 +244,6 @@ public class DisjunctionMaxQuery extends
return clone;
}
- // inherit javadoc
- @Override
- public void extractTerms(Set<Term> terms) {
- for (Query query : disjuncts) {
- query.extractTerms(terms);
- }
- }
-
/** Prettyprint us.
* @param field the field to which we are applied
* @return a string that shows what we do, of the form "(disjunct1 | disjunct2 | ... | disjunctn)^boost"
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/Filter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/Filter.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/Filter.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/Filter.java Thu Apr 16 15:56:13 2015
@@ -18,8 +18,10 @@ package org.apache.lucene.search;
*/
import java.io.IOException;
+import java.util.Set;
import org.apache.lucene.index.LeafReaderContext;
+import org.apache.lucene.index.Term;
import org.apache.lucene.util.Bits;
/**
@@ -79,6 +81,9 @@ public abstract class Filter extends Que
return new Weight(this) {
@Override
+ public void extractTerms(Set<Term> terms) {}
+
+ @Override
public float getValueForNormalization() throws IOException {
return 0f;
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/FilteredQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/FilteredQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/FilteredQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/FilteredQuery.java Thu Apr 16 15:56:13 2015
@@ -90,6 +90,11 @@ public class FilteredQuery extends Query
return new Weight(FilteredQuery.this) {
@Override
+ public void extractTerms(Set<Term> terms) {
+ weight.extractTerms(terms);
+ }
+
+ @Override
public float getValueForNormalization() throws IOException {
return weight.getValueForNormalization() * getBoost() * getBoost(); // boost sub-weight
}
@@ -371,12 +376,6 @@ public class FilteredQuery extends Query
return this.strategy;
}
- // inherit javadoc
- @Override
- public void extractTerms(Set<Term> terms) {
- getQuery().extractTerms(terms);
- }
-
/** Prints a user-readable version of this query. */
@Override
public String toString (String s) {
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/LRUQueryCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/LRUQueryCache.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/LRUQueryCache.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/LRUQueryCache.java Thu Apr 16 15:56:13 2015
@@ -30,6 +30,7 @@ import java.util.Map;
import java.util.Set;
import org.apache.lucene.index.LeafReader;
+import org.apache.lucene.index.Term;
import org.apache.lucene.index.LeafReader.CoreClosedListener;
import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.util.Accountable;
@@ -563,7 +564,12 @@ public class LRUQueryCache implements Qu
}
@Override
- protected Scorer scorer(LeafReaderContext context, final Bits acceptDocs, float score) throws IOException {
+ public void extractTerms(Set<Term> terms) {
+ in.extractTerms(terms);
+ }
+
+ @Override
+ protected Scorer scorer(LeafReaderContext context, final Bits acceptDocs, final float score) throws IOException {
if (context.ord == 0) {
policy.onUse(getQuery());
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MatchAllDocsQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MatchAllDocsQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MatchAllDocsQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MatchAllDocsQuery.java Thu Apr 16 15:56:13 2015
@@ -93,6 +93,9 @@ public final class MatchAllDocsQuery ext
}
@Override
+ public void extractTerms(Set<Term> terms) {}
+
+ @Override
public String toString() {
return "weight(" + MatchAllDocsQuery.this + ")";
}
@@ -134,10 +137,6 @@ public final class MatchAllDocsQuery ext
}
@Override
- public void extractTerms(Set<Term> terms) {
- }
-
- @Override
public String toString(String field) {
StringBuilder buffer = new StringBuilder();
buffer.append("*:*");
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MultiPhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MultiPhraseQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MultiPhraseQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MultiPhraseQuery.java Thu Apr 16 15:56:13 2015
@@ -126,16 +126,6 @@ public class MultiPhraseQuery extends Qu
return result;
}
- // inherit javadoc
- @Override
- public void extractTerms(Set<Term> terms) {
- for (final Term[] arr : termArrays) {
- for (final Term term: arr) {
- terms.add(term);
- }
- }
- }
-
private class MultiPhraseWeight extends Weight {
private final Similarity similarity;
@@ -168,6 +158,15 @@ public class MultiPhraseQuery extends Qu
}
@Override
+ public void extractTerms(Set<Term> terms) {
+ for (final Term[] arr : termArrays) {
+ for (final Term term: arr) {
+ terms.add(term);
+ }
+ }
+ }
+
+ @Override
public float getValueForNormalization() {
return stats.getValueForNormalization();
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MultiTermQueryConstantScoreWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MultiTermQueryConstantScoreWrapper.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MultiTermQueryConstantScoreWrapper.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MultiTermQueryConstantScoreWrapper.java Thu Apr 16 15:56:13 2015
@@ -75,11 +75,6 @@ final class MultiTermQueryConstantScoreW
return Objects.hash(getClass(), query, getBoost());
}
- @Override
- public void extractTerms(Set<Term> terms) {
- // no-op
- }
-
/** Returns the field name for this query */
public final String getField() { return query.getField(); }
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java Thu Apr 16 15:56:13 2015
@@ -266,6 +266,11 @@ public class PhraseQuery extends Query {
}
@Override
+ public void extractTerms(Set<Term> queryTerms) {
+ queryTerms.addAll(terms);
+ }
+
+ @Override
public String toString() { return "weight(" + PhraseQuery.this + ")"; }
@Override
@@ -353,14 +358,6 @@ public class PhraseQuery extends Query {
return new PhraseWeight(searcher, needsScores);
}
- /**
- * @see org.apache.lucene.search.Query#extractTerms(Set)
- */
- @Override
- public void extractTerms(Set<Term> queryTerms) {
- queryTerms.addAll(terms);
- }
-
/** Prints a user-readable version of this query. */
@Override
public String toString(String f) {
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/Query.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/Query.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/Query.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/Query.java Thu Apr 16 15:56:13 2015
@@ -18,10 +18,8 @@ package org.apache.lucene.search;
*/
import java.io.IOException;
-import java.util.Set;
import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.Term;
/** The abstract base class for queries.
<p>Instantiable subclasses are:
@@ -88,17 +86,6 @@ public abstract class Query implements C
public Query rewrite(IndexReader reader) throws IOException {
return this;
}
-
- /**
- * Expert: adds all terms occurring in this query to the terms set. Only
- * works if this query is in its {@link #rewrite rewritten} form.
- *
- * @throws UnsupportedOperationException if this query is not yet rewritten
- */
- public void extractTerms(Set<Term> terms) {
- // needs to be implemented by query subclasses
- throw new UnsupportedOperationException(getClass().getName());
- }
/** Returns a clone of this query. */
@Override
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/TermQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/TermQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/TermQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/TermQuery.java Thu Apr 16 15:56:13 2015
@@ -60,7 +60,12 @@ public class TermQuery extends Query {
searcher.collectionStatistics(term.field()),
searcher.termStatistics(term, termStates));
}
-
+
+ @Override
+ public void extractTerms(Set<Term> terms) {
+ terms.add(getTerm());
+ }
+
@Override
public String toString() {
return "weight(" + TermQuery.this + ")";
@@ -174,11 +179,6 @@ public class TermQuery extends Query {
return new TermWeight(searcher, needsScores, termState);
}
- @Override
- public void extractTerms(Set<Term> terms) {
- terms.add(getTerm());
- }
-
/** Prints a user-readable version of this query. */
@Override
public String toString(String field) {
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/Weight.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/Weight.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/Weight.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/Weight.java Thu Apr 16 15:56:13 2015
@@ -18,9 +18,11 @@ package org.apache.lucene.search;
*/
import java.io.IOException;
+import java.util.Set;
import org.apache.lucene.index.IndexReaderContext;
import org.apache.lucene.index.LeafReaderContext;
+import org.apache.lucene.index.Term;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.util.Bits;
@@ -66,6 +68,14 @@ public abstract class Weight {
}
/**
+ * Expert: adds all terms occurring in this query to the terms set. If the
+ * {@link Weight} was created with {@code needsScores == true} then this
+ * method will only extract terms which are used for scoring, otherwise it
+ * will extract all terms which are used for matching.
+ */
+ public abstract void extractTerms(Set<Term> terms);
+
+ /**
* An explanation of the score computation for the named document.
*
* @param context the readers context to create the {@link Explanation} for.
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadSpanUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadSpanUtil.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadSpanUtil.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadSpanUtil.java Thu Apr 16 15:56:13 2015
@@ -26,15 +26,16 @@ import java.util.List;
import java.util.Map;
import java.util.TreeSet;
-import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexReaderContext;
+import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.TermContext;
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.DisjunctionMaxQuery;
import org.apache.lucene.search.FilteredQuery;
+import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.MultiPhraseQuery;
import org.apache.lucene.search.PhraseQuery;
import org.apache.lucene.search.Query;
@@ -180,7 +181,9 @@ public class PayloadSpanUtil {
throws IOException {
Map<Term,TermContext> termContexts = new HashMap<>();
TreeSet<Term> terms = new TreeSet<>();
- query.extractTerms(terms);
+ final IndexSearcher searcher = new IndexSearcher(context);
+ searcher.setQueryCache(null);
+ searcher.createNormalizedWeight(query, false).extractTerms(terms);
for (Term term : terms) {
termContexts.put(term, TermContext.build(context, term));
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java Thu Apr 16 15:56:13 2015
@@ -19,6 +19,7 @@ package org.apache.lucene.search.spans;
import java.io.IOException;
import java.util.Map;
+import java.util.Set;
import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.index.IndexReader;
@@ -72,7 +73,12 @@ public class SpanMultiTermQueryWrapper<Q
setRewriteMethod(SCORING_SPAN_QUERY_REWRITE);
}
}
-
+
+ @Override
+ protected void extractTerms(Set<Term> terms) {
+ throw new IllegalStateException("Rewrite first");
+ }
+
/**
* Expert: returns the rewriteMethod
*/
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanQuery.java Thu Apr 16 15:56:13 2015
@@ -19,12 +19,14 @@ package org.apache.lucene.search.spans;
import java.io.IOException;
import java.util.Map;
+import java.util.Set;
import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.TermContext;
-import org.apache.lucene.search.Query;
import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.search.Query;
+import org.apache.lucene.search.Weight;
import org.apache.lucene.util.Bits;
/** Base class for span-based queries. */
@@ -36,6 +38,13 @@ public abstract class SpanQuery extends
public abstract Spans getSpans(LeafReaderContext context, Bits acceptDocs, Map<Term,TermContext> termContexts) throws IOException;
/**
+ * Extract terms from these spans.
+ * @lucene.internal
+ * @see Weight#extractTerms
+ */
+ protected abstract void extractTerms(Set<Term> terms);
+
+ /**
* Returns the name of the field matched by this query.
* <p>
* Note that this may return null if the query matches no terms.
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanWeight.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanWeight.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanWeight.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanWeight.java Thu Apr 16 15:56:13 2015
@@ -20,6 +20,7 @@ package org.apache.lucene.search.spans;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
+import java.util.Set;
import java.util.TreeSet;
import org.apache.lucene.index.IndexReaderContext;
@@ -72,6 +73,11 @@ public class SpanWeight extends Weight {
}
@Override
+ public void extractTerms(Set<Term> terms) {
+ query.extractTerms(terms);
+ }
+
+ @Override
public float getValueForNormalization() throws IOException {
return stats == null ? 1.0f : stats.getValueForNormalization();
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/JustCompileSearch.java Thu Apr 16 15:56:13 2015
@@ -18,9 +18,11 @@ package org.apache.lucene.search;
*/
import java.io.IOException;
+import java.util.Set;
import org.apache.lucene.index.FieldInvertState;
import org.apache.lucene.index.LeafReaderContext;
+import org.apache.lucene.index.Term;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.PriorityQueue;
@@ -276,6 +278,11 @@ final class JustCompileSearch {
}
@Override
+ public void extractTerms(Set<Term> terms) {
+ throw new UnsupportedOperationException(UNSUPPORTED_MSG);
+ }
+
+ @Override
public Explanation explain(LeafReaderContext context, int doc) {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@@ -294,7 +301,7 @@ final class JustCompileSearch {
public Scorer scorer(LeafReaderContext context, Bits acceptDocs) {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
-
+
}
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java Thu Apr 16 15:56:13 2015
@@ -762,7 +762,7 @@ public class TestBooleanQuery extends Lu
assertEquals("a +b -c #d", bq.toString("field"));
}
- public void testExtractTerms() {
+ public void testExtractTerms() throws IOException {
Term a = new Term("f", "a");
Term b = new Term("f", "b");
Term c = new Term("f", "c");
@@ -772,8 +772,14 @@ public class TestBooleanQuery extends Lu
bq.add(new TermQuery(b), Occur.MUST);
bq.add(new TermQuery(c), Occur.FILTER);
bq.add(new TermQuery(d), Occur.MUST_NOT);
- Set<Term> terms = new HashSet<>();
- bq.extractTerms(terms);
- assertEquals(new HashSet<>(Arrays.asList(a, b)), terms);
+ IndexSearcher searcher = new IndexSearcher(new MultiReader());
+
+ Set<Term> scoringTerms = new HashSet<>();
+ searcher.createNormalizedWeight(bq, true).extractTerms(scoringTerms);
+ assertEquals(new HashSet<>(Arrays.asList(a, b)), scoringTerms);
+
+ Set<Term> matchingTerms = new HashSet<>();
+ searcher.createNormalizedWeight(bq, false).extractTerms(matchingTerms);
+ assertEquals(new HashSet<>(Arrays.asList(a, b, c)), matchingTerms);
}
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java Thu Apr 16 15:56:13 2015
@@ -18,6 +18,7 @@ package org.apache.lucene.search;
*/
import java.io.IOException;
+import java.util.Set;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
@@ -73,6 +74,11 @@ public class TestBooleanScorer extends L
public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
return new Weight(CrazyMustUseBulkScorerQuery.this) {
@Override
+ public void extractTerms(Set<Term> terms) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
public Explanation explain(LeafReaderContext context, int doc) {
throw new UnsupportedOperationException();
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java Thu Apr 16 15:56:13 2015
@@ -18,12 +18,16 @@ package org.apache.lucene.search;
*/
import java.io.IOException;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.LeafReaderContext;
+import org.apache.lucene.index.MultiReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.similarities.DefaultSimilarity;
@@ -231,4 +235,18 @@ public class TestConstantScoreQuery exte
w.close();
dir.close();
}
+
+ public void testExtractTerms() throws Exception {
+ final IndexSearcher searcher = newSearcher(new MultiReader());
+ final TermQuery termQuery = new TermQuery(new Term("foo", "bar"));
+ final ConstantScoreQuery csq = new ConstantScoreQuery(termQuery);
+
+ final Set<Term> scoringTerms = new HashSet<>();
+ searcher.createNormalizedWeight(csq, true).extractTerms(scoringTerms);
+ assertEquals(Collections.emptySet(), scoringTerms);
+
+ final Set<Term> matchingTerms = new HashSet<>();
+ searcher.createNormalizedWeight(csq, false).extractTerms(matchingTerms);
+ assertEquals(Collections.singleton(new Term("foo", "bar")), matchingTerms);
+ }
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestNeedsScores.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestNeedsScores.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestNeedsScores.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestNeedsScores.java Thu Apr 16 15:56:13 2015
@@ -113,6 +113,11 @@ public class TestNeedsScores extends Luc
final Weight w = in.createWeight(searcher, needsScores);
return new Weight(AssertNeedsScores.this) {
@Override
+ public void extractTerms(Set<Term> terms) {
+ w.extractTerms(terms);
+ }
+
+ @Override
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
return w.explain(context, doc);
}
@@ -146,11 +151,6 @@ public class TestNeedsScores extends Luc
}
@Override
- public void extractTerms(Set<Term> terms) {
- in.extractTerms(terms);
- }
-
- @Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java Thu Apr 16 15:56:13 2015
@@ -429,6 +429,10 @@ public class TestQueryRescorer extends L
return new Weight(FixedScoreQuery.this) {
@Override
+ public void extractTerms(Set<Term> terms) {
+ }
+
+ @Override
public float getValueForNormalization() {
return 1.0f;
}
@@ -495,10 +499,6 @@ public class TestQueryRescorer extends L
}
@Override
- public void extractTerms(Set<Term> terms) {
- }
-
- @Override
public String toString(String field) {
return "FixedScoreQuery " + idToNum.length + " ids; reverse=" + reverse;
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/JustCompileSearchSpans.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/JustCompileSearchSpans.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/JustCompileSearchSpans.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/JustCompileSearchSpans.java Thu Apr 16 15:56:13 2015
@@ -20,6 +20,7 @@ package org.apache.lucene.search.spans;
import java.io.IOException;
import java.util.Collection;
import java.util.Map;
+import java.util.Set;
import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.index.Term;
@@ -89,6 +90,11 @@ final class JustCompileSearchSpans {
static final class JustCompileSpanQuery extends SpanQuery {
@Override
+ protected void extractTerms(Set<Term> terms) {
+ throw new UnsupportedOperationException(UNSUPPORTED_MSG);
+ }
+
+ @Override
public String getField() {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/MultiSpansWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/MultiSpansWrapper.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/MultiSpansWrapper.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/MultiSpansWrapper.java Thu Apr 16 15:56:13 2015
@@ -28,7 +28,6 @@ import org.apache.lucene.index.LeafReade
import org.apache.lucene.index.SlowCompositeReaderWrapper;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.TermContext;
-import org.apache.lucene.search.Query;
import org.apache.lucene.util.Bits;
/**
@@ -43,7 +42,7 @@ public class MultiSpansWrapper {
public static Spans wrap(IndexReader reader, SpanQuery spanQuery) throws IOException {
LeafReader lr = SlowCompositeReaderWrapper.wrap(reader); // slow, but ok for testing
LeafReaderContext lrContext = lr.getContext();
- Query rewrittenQuery = spanQuery.rewrite(lr); // get the term contexts so getSpans can be called directly
+ SpanQuery rewrittenQuery = (SpanQuery) spanQuery.rewrite(lr); // get the term contexts so getSpans can be called directly
HashSet<Term> termSet = new HashSet<>();
rewrittenQuery.extractTerms(termSet);
Map<Term,TermContext> termContexts = new HashMap<>();
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java Thu Apr 16 15:56:13 2015
@@ -175,7 +175,7 @@ public class TestFieldMaskingSpanQuery e
QueryUtils.checkEqual(q, qr);
HashSet<Term> set = new HashSet<>();
- qr.extractTerms(set);
+ qr.createWeight(searcher, true).extractTerms(set);
assertEquals(2, set.size());
}
Modified: lucene/dev/branches/branch_5x/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/facet/src/java/org/apache/lucene/facet/DrillSidewaysQuery.java Thu Apr 16 15:56:13 2015
@@ -18,9 +18,11 @@ package org.apache.lucene.facet;
*/
import java.io.IOException;
import java.util.Arrays;
+import java.util.Set;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.LeafReaderContext;
+import org.apache.lucene.index.Term;
import org.apache.lucene.search.BulkScorer;
import org.apache.lucene.search.Collector;
import org.apache.lucene.search.DocIdSet;
@@ -92,6 +94,9 @@ class DrillSidewaysQuery extends Query {
return new Weight(DrillSidewaysQuery.this) {
@Override
+ public void extractTerms(Set<Term> terms) {}
+
+ @Override
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
return baseWeight.explain(context, doc);
}
Modified: lucene/dev/branches/branch_5x/lucene/highlighter/src/java/org/apache/lucene/search/highlight/QueryTermExtractor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/highlighter/src/java/org/apache/lucene/search/highlight/QueryTermExtractor.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/highlighter/src/java/org/apache/lucene/search/highlight/QueryTermExtractor.java (original)
+++ lucene/dev/branches/branch_5x/lucene/highlighter/src/java/org/apache/lucene/search/highlight/QueryTermExtractor.java Thu Apr 16 15:56:13 2015
@@ -21,10 +21,12 @@ import java.util.HashSet;
import java.util.Iterator;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.MultiReader;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.FilteredQuery;
+import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
/**
@@ -37,6 +39,18 @@ import org.apache.lucene.search.Query;
public final class QueryTermExtractor
{
+ /** for term extraction */
+ private static final IndexSearcher EMPTY_INDEXSEARCHER;
+ static {
+ try {
+ IndexReader emptyReader = new MultiReader();
+ EMPTY_INDEXSEARCHER = new IndexSearcher(emptyReader);
+ EMPTY_INDEXSEARCHER.setQueryCache(null);
+ } catch (IOException bogus) {
+ throw new RuntimeException(bogus);
+ }
+ }
+
/**
* Extracts all terms texts of a given Query into an array of WeightedTerms
*
@@ -113,7 +127,11 @@ public final class QueryTermExtractor
getTermsFromFilteredQuery((FilteredQuery) query, terms, prohibited, fieldName);
else {
HashSet<Term> nonWeightedTerms = new HashSet<>();
- query.extractTerms(nonWeightedTerms);
+ try {
+ EMPTY_INDEXSEARCHER.createNormalizedWeight(query, false).extractTerms(nonWeightedTerms);
+ } catch (IOException bogus) {
+ throw new RuntimeException("Should not happen on an empty index", bogus);
+ }
for (Iterator<Term> iter = nonWeightedTerms.iterator(); iter.hasNext(); ) {
Term term = iter.next();
if ((fieldName == null) || (term.field().equals(fieldName))) {
Modified: lucene/dev/branches/branch_5x/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java (original)
+++ lucene/dev/branches/branch_5x/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java Thu Apr 16 15:56:13 2015
@@ -278,14 +278,16 @@ public class WeightedSpanTermExtractor {
Set<Term> nonWeightedTerms = new HashSet<>();
final boolean mustRewriteQuery = mustRewriteQuery(spanQuery);
+ final IndexSearcher searcher = new IndexSearcher(getLeafContext());
+ searcher.setQueryCache(null);
if (mustRewriteQuery) {
for (final String field : fieldNames) {
final SpanQuery rewrittenQuery = (SpanQuery) spanQuery.rewrite(getLeafContext().reader());
queries.put(field, rewrittenQuery);
- rewrittenQuery.extractTerms(nonWeightedTerms);
+ rewrittenQuery.createWeight(searcher, false).extractTerms(nonWeightedTerms);
}
} else {
- spanQuery.extractTerms(nonWeightedTerms);
+ spanQuery.createWeight(searcher, false).extractTerms(nonWeightedTerms);
}
List<PositionSpan> spanPositions = new ArrayList<>();
@@ -300,7 +302,7 @@ public class WeightedSpanTermExtractor {
LeafReaderContext context = getLeafContext();
Map<Term,TermContext> termContexts = new HashMap<>();
TreeSet<Term> extractedTerms = new TreeSet<>();
- q.extractTerms(extractedTerms);
+ searcher.createNormalizedWeight(q, false).extractTerms(extractedTerms);
for (Term term : extractedTerms) {
termContexts.put(term, TermContext.build(context, term));
}
@@ -353,7 +355,8 @@ public class WeightedSpanTermExtractor {
*/
protected void extractWeightedTerms(Map<String,WeightedSpanTerm> terms, Query query) throws IOException {
Set<Term> nonWeightedTerms = new HashSet<>();
- query.extractTerms(nonWeightedTerms);
+ final IndexSearcher searcher = new IndexSearcher(getLeafContext());
+ searcher.createNormalizedWeight(query, false).extractTerms(nonWeightedTerms);
for (final Term queryTerm : nonWeightedTerms) {
Modified: lucene/dev/branches/branch_5x/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java (original)
+++ lucene/dev/branches/branch_5x/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java Thu Apr 16 15:56:13 2015
@@ -101,10 +101,12 @@ public class PostingsHighlighter {
// unnecessary.
/** for rewriting: we don't want slow processing from MTQs */
- private static final IndexReader EMPTY_INDEXREADER;
+ private static final IndexSearcher EMPTY_INDEXSEARCHER;
static {
try {
- EMPTY_INDEXREADER = new MultiReader();
+ IndexReader emptyReader = new MultiReader();
+ EMPTY_INDEXSEARCHER = new IndexSearcher(emptyReader);
+ EMPTY_INDEXSEARCHER.setQueryCache(null);
} catch (IOException bogus) {
throw new RuntimeException(bogus);
}
@@ -352,12 +354,10 @@ public class PostingsHighlighter {
if (fieldsIn.length != maxPassagesIn.length) {
throw new IllegalArgumentException("invalid number of maxPassagesIn");
}
- final IndexReader reader = searcher.getIndexReader();
- Query rewritten = rewrite(query);
SortedSet<Term> queryTerms = new TreeSet<>();
- rewritten.extractTerms(queryTerms);
+ EMPTY_INDEXSEARCHER.createNormalizedWeight(query, false).extractTerms(queryTerms);
- IndexReaderContext readerContext = reader.getContext();
+ IndexReaderContext readerContext = searcher.getIndexReader().getContext();
List<LeafReaderContext> leaves = readerContext.leaves();
// Make our own copies because we sort in-place:
@@ -509,10 +509,8 @@ public class PostingsHighlighter {
// no offsets available
throw new IllegalArgumentException("field '" + field + "' was indexed without offsets, cannot highlight");
}
- if (t != null) {
- termsEnum = t.iterator();
- postings = new PostingsEnum[terms.length];
- }
+ termsEnum = t.iterator();
+ postings = new PostingsEnum[terms.length];
}
if (termsEnum == null) {
continue; // no terms for this field, nothing to do
@@ -761,19 +759,6 @@ public class PostingsHighlighter {
public long cost() { return 0; }
};
- /**
- * we rewrite against an empty indexreader: as we don't want things like
- * rangeQueries that don't summarize the document
- */
- private static Query rewrite(Query original) throws IOException {
- Query query = original;
- for (Query rewrittenQuery = query.rewrite(EMPTY_INDEXREADER); rewrittenQuery != query;
- rewrittenQuery = query.rewrite(EMPTY_INDEXREADER)) {
- query = rewrittenQuery;
- }
- return query;
- }
-
private static class LimitedStoredFieldVisitor extends StoredFieldVisitor {
private final String fields[];
private final char valueSeparators[];
Modified: lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/GlobalOrdinalsQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/GlobalOrdinalsQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/GlobalOrdinalsQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/GlobalOrdinalsQuery.java Thu Apr 16 15:56:13 2015
@@ -67,11 +67,6 @@ final class GlobalOrdinalsQuery extends
}
@Override
- public void extractTerms(Set<Term> terms) {
- fromQuery.extractTerms(terms);
- }
-
- @Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
@@ -117,6 +112,9 @@ final class GlobalOrdinalsQuery extends
}
@Override
+ public void extractTerms(Set<Term> terms) {}
+
+ @Override
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
SortedDocValues values = DocValues.getSorted(context.reader(), joinField);
if (values != null) {
Modified: lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/GlobalOrdinalsWithScoreQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/GlobalOrdinalsWithScoreQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/GlobalOrdinalsWithScoreQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/GlobalOrdinalsWithScoreQuery.java Thu Apr 16 15:56:13 2015
@@ -65,11 +65,6 @@ final class GlobalOrdinalsWithScoreQuery
}
@Override
- public void extractTerms(Set<Term> terms) {
- fromQuery.extractTerms(terms);
- }
-
- @Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
@@ -115,6 +110,9 @@ final class GlobalOrdinalsWithScoreQuery
}
@Override
+ public void extractTerms(Set<Term> terms) {}
+
+ @Override
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
SortedDocValues values = DocValues.getSorted(context.reader(), joinField);
if (values != null) {
Modified: lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/TermsIncludingScoreQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/TermsIncludingScoreQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/TermsIncludingScoreQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/TermsIncludingScoreQuery.java Thu Apr 16 15:56:13 2015
@@ -76,11 +76,6 @@ class TermsIncludingScoreQuery extends Q
}
@Override
- public void extractTerms(Set<Term> terms) {
- originalQuery.extractTerms(terms);
- }
-
- @Override
public Query rewrite(IndexReader reader) throws IOException {
final Query originalQueryRewrite = originalQuery.rewrite(reader);
if (originalQueryRewrite != originalQuery) {
@@ -128,6 +123,9 @@ class TermsIncludingScoreQuery extends Q
return new Weight(TermsIncludingScoreQuery.this) {
@Override
+ public void extractTerms(Set<Term> terms) {}
+
+ @Override
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
Terms terms = context.reader().terms(field);
if (terms != null) {
Modified: lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java Thu Apr 16 15:56:13 2015
@@ -106,6 +106,9 @@ public class ToChildBlockJoinQuery exten
}
@Override
+ public void extractTerms(Set<Term> terms) {}
+
+ @Override
public float getValueForNormalization() throws IOException {
return parentWeight.getValueForNormalization() * joinQuery.getBoost() * joinQuery.getBoost();
}
@@ -314,11 +317,6 @@ public class ToChildBlockJoinQuery exten
}
@Override
- public void extractTerms(Set<Term> terms) {
- parentQuery.extractTerms(terms);
- }
-
- @Override
public Query rewrite(IndexReader reader) throws IOException {
final Query parentRewrite = parentQuery.rewrite(reader);
if (parentRewrite != parentQuery) {
Modified: lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java Thu Apr 16 15:56:13 2015
@@ -143,6 +143,9 @@ public class ToParentBlockJoinQuery exte
}
@Override
+ public void extractTerms(Set<Term> terms) {}
+
+ @Override
public float getValueForNormalization() throws IOException {
return childWeight.getValueForNormalization() * joinQuery.getBoost() * joinQuery.getBoost();
}
@@ -428,11 +431,6 @@ public class ToParentBlockJoinQuery exte
}
@Override
- public void extractTerms(Set<Term> terms) {
- childQuery.extractTerms(terms);
- }
-
- @Override
public Query rewrite(IndexReader reader) throws IOException {
final Query childRewrite = childQuery.rewrite(reader);
if (childRewrite != childQuery) {
Modified: lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/CommonTermsQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/CommonTermsQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/CommonTermsQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/CommonTermsQuery.java Thu Apr 16 15:56:13 2015
@@ -34,7 +34,6 @@ import org.apache.lucene.util.ToStringUt
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import java.util.Set;
/**
* A query that executes high-frequency terms in a optional sub-query to prevent
@@ -333,11 +332,6 @@ public class CommonTermsQuery extends Qu
}
@Override
- public void extractTerms(Set<Term> terms) {
- terms.addAll(this.terms);
- }
-
- @Override
public String toString(String field) {
StringBuilder buffer = new StringBuilder();
boolean needParens = (getBoost() != 1.0)
Modified: lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java Thu Apr 16 15:56:13 2015
@@ -34,7 +34,6 @@ import org.apache.lucene.search.FilterSc
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.Scorer;
-import org.apache.lucene.search.TwoPhaseIterator;
import org.apache.lucene.search.Weight;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.ToStringUtils;
@@ -109,15 +108,6 @@ public class CustomScoreQuery extends Qu
return (clone == null) ? this : clone;
}
- /*(non-Javadoc) @see org.apache.lucene.search.Query#extractTerms(java.util.Set) */
- @Override
- public void extractTerms(Set<Term> terms) {
- subQuery.extractTerms(terms);
- for (Query scoringQuery : scoringQueries) {
- scoringQuery.extractTerms(terms);
- }
- }
-
/*(non-Javadoc) @see org.apache.lucene.search.Query#clone() */
@Override
public CustomScoreQuery clone() {
@@ -199,6 +189,14 @@ public class CustomScoreQuery extends Qu
}
@Override
+ public void extractTerms(Set<Term> terms) {
+ subQueryWeight.extractTerms(terms);
+ for (Weight scoringWeight : valSrcWeights) {
+ scoringWeight.extractTerms(terms);
+ }
+ }
+
+ @Override
public float getValueForNormalization() throws IOException {
float sum = subQueryWeight.getValueForNormalization();
for (Weight valSrcWeight : valSrcWeights) {
Modified: lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/TermsQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/TermsQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/TermsQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/TermsQuery.java Thu Apr 16 15:56:13 2015
@@ -262,14 +262,6 @@ public class TermsQuery extends Query im
return Collections.emptyList();
}
- @Override
- public void extractTerms(Set<Term> terms) {
- // no-op
- // This query is for abuse cases when the number of terms is too high to
- // run efficiently as a BooleanQuery. So likewise we hide its terms in
- // order to protect highlighters
- }
-
private static final class TermsAndField implements Accountable {
private static final long BASE_RAM_BYTES_USED =
@@ -361,6 +353,14 @@ public class TermsQuery extends Query im
private float queryWeight;
@Override
+ public void extractTerms(Set<Term> terms) {
+ // no-op
+ // This query is for abuse cases when the number of terms is too high to
+ // run efficiently as a BooleanQuery. So likewise we hide its terms in
+ // order to protect highlighters
+ }
+
+ @Override
public float getValueForNormalization() throws IOException {
queryWeight = getBoost();
return queryWeight * queryWeight;
Modified: lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/BoostedQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/BoostedQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/BoostedQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/BoostedQuery.java Thu Apr 16 15:56:13 2015
@@ -63,11 +63,6 @@ public class BoostedQuery extends Query
}
@Override
- public void extractTerms(Set<Term> terms) {
- q.extractTerms(terms);
- }
-
- @Override
public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
return new BoostedQuery.BoostedWeight(searcher, needsScores);
}
@@ -86,6 +81,11 @@ public class BoostedQuery extends Query
}
@Override
+ public void extractTerms(Set<Term> terms) {
+ qWeight.extractTerms(terms);
+ }
+
+ @Override
public float getValueForNormalization() throws IOException {
float sum = qWeight.getValueForNormalization();
sum *= getBoost() * getBoost();
Modified: lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java Thu Apr 16 15:56:13 2015
@@ -61,9 +61,6 @@ public class FunctionQuery extends Query
return this;
}
- @Override
- public void extractTerms(Set<Term> terms) {}
-
protected class FunctionWeight extends Weight {
protected final IndexSearcher searcher;
protected float queryNorm;
@@ -78,6 +75,9 @@ public class FunctionQuery extends Query
}
@Override
+ public void extractTerms(Set<Term> terms) {}
+
+ @Override
public float getValueForNormalization() throws IOException {
queryWeight = getBoost();
return queryWeight * queryWeight;
Modified: lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java Thu Apr 16 15:56:13 2015
@@ -202,15 +202,6 @@ public class TermAutomatonQuery extends
}
@Override
- public void extractTerms(Set<Term> terms) {
- for(BytesRef text : termToID.keySet()) {
- if (text != null) {
- terms.add(new Term(field, text));
- }
- }
- }
-
- @Override
public String toString(String field) {
// TODO: what really am I supposed to do with the incoming field...
StringBuilder sb = new StringBuilder();
@@ -366,6 +357,15 @@ public class TermAutomatonQuery extends
}
@Override
+ public void extractTerms(Set<Term> terms) {
+ for(BytesRef text : termToID.keySet()) {
+ if (text != null) {
+ terms.add(new Term(field, text));
+ }
+ }
+ }
+
+ @Override
public String toString() {
return "weight(" + TermAutomatonQuery.this + ")";
}
Modified: lucene/dev/branches/branch_5x/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java (original)
+++ lucene/dev/branches/branch_5x/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java Thu Apr 16 15:56:13 2015
@@ -81,7 +81,7 @@ public class FuzzyLikeThisQueryTest exte
flt.addTerms("smith", "name", 0.3f, 1);
Query q = flt.rewrite(searcher.getIndexReader());
HashSet<Term> queryTerms = new HashSet<>();
- q.extractTerms(queryTerms);
+ searcher.createWeight(q, true).extractTerms(queryTerms);
assertTrue("Should have variant smythe", queryTerms.contains(new Term("name", "smythe")));
assertTrue("Should have variant smith", queryTerms.contains(new Term("name", "smith")));
assertTrue("Should have variant smyth", queryTerms.contains(new Term("name", "smyth")));
@@ -98,7 +98,7 @@ public class FuzzyLikeThisQueryTest exte
flt.addTerms("jonathin smoth", "name", 0.3f, 1);
Query q = flt.rewrite(searcher.getIndexReader());
HashSet<Term> queryTerms = new HashSet<>();
- q.extractTerms(queryTerms);
+ searcher.createWeight(q, true).extractTerms(queryTerms);
assertTrue("Should have variant jonathan", queryTerms.contains(new Term("name", "jonathan")));
assertTrue("Should have variant smith", queryTerms.contains(new Term("name", "smith")));
TopDocs topDocs = searcher.search(flt, 1);
@@ -116,7 +116,7 @@ public class FuzzyLikeThisQueryTest exte
// don't fail here just because the field doesn't exits
Query q = flt.rewrite(searcher.getIndexReader());
HashSet<Term> queryTerms = new HashSet<>();
- q.extractTerms(queryTerms);
+ searcher.createWeight(q, true).extractTerms(queryTerms);
assertTrue("Should have variant jonathan", queryTerms.contains(new Term("name", "jonathan")));
assertTrue("Should have variant smith", queryTerms.contains(new Term("name", "smith")));
TopDocs topDocs = searcher.search(flt, 1);
@@ -133,7 +133,7 @@ public class FuzzyLikeThisQueryTest exte
flt.addTerms("fernando smith", "name", 0.3f, 1);
Query q = flt.rewrite(searcher.getIndexReader());
HashSet<Term> queryTerms = new HashSet<>();
- q.extractTerms(queryTerms);
+ searcher.createWeight(q, true).extractTerms(queryTerms);
assertTrue("Should have variant smith", queryTerms.contains(new Term("name", "smith")));
TopDocs topDocs = searcher.search(flt, 1);
ScoreDoc[] sd = topDocs.scoreDocs;
Modified: lucene/dev/branches/branch_5x/lucene/spatial/src/java/org/apache/lucene/spatial/composite/CompositeVerifyQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/spatial/src/java/org/apache/lucene/spatial/composite/CompositeVerifyQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/spatial/src/java/org/apache/lucene/spatial/composite/CompositeVerifyQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/spatial/src/java/org/apache/lucene/spatial/composite/CompositeVerifyQuery.java Thu Apr 16 15:56:13 2015
@@ -19,11 +19,9 @@ package org.apache.lucene.spatial.compos
import java.io.IOException;
import java.util.Map;
-import java.util.Set;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.LeafReaderContext;
-import org.apache.lucene.index.Term;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.search.ConstantScoreWeight;
@@ -60,11 +58,6 @@ public class CompositeVerifyQuery extend
}
@Override
- public void extractTerms(Set<Term> terms) {
- indexQuery.extractTerms(terms);
- }
-
- @Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Modified: lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingQuery.java Thu Apr 16 15:56:13 2015
@@ -47,11 +47,6 @@ public class AssertingQuery extends Quer
}
@Override
- public void extractTerms(Set<Term> terms) {
- in.extractTerms(terms);
- }
-
- @Override
public String toString(String field) {
return in.toString(field);
}
Modified: lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingWeight.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingWeight.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingWeight.java (original)
+++ lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/AssertingWeight.java Thu Apr 16 15:56:13 2015
@@ -19,8 +19,10 @@ package org.apache.lucene.search;
import java.io.IOException;
import java.util.Random;
+import java.util.Set;
import org.apache.lucene.index.LeafReaderContext;
+import org.apache.lucene.index.Term;
import org.apache.lucene.util.Bits;
class AssertingWeight extends Weight {
@@ -39,6 +41,11 @@ class AssertingWeight extends Weight {
}
@Override
+ public void extractTerms(Set<Term> terms) {
+ in.extractTerms(terms);
+ }
+
+ @Override
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
return in.explain(context, doc);
}
Modified: lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/RandomApproximationQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/RandomApproximationQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/RandomApproximationQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/RandomApproximationQuery.java Thu Apr 16 15:56:13 2015
@@ -2,10 +2,13 @@ package org.apache.lucene.search;
import java.io.IOException;
import java.util.Random;
+import java.util.Set;
import com.carrotsearch.randomizedtesting.generators.RandomInts;
+
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.LeafReaderContext;
+import org.apache.lucene.index.Term;
import org.apache.lucene.util.Bits;
/*
@@ -90,6 +93,11 @@ public class RandomApproximationQuery ex
}
@Override
+ public void extractTerms(Set<Term> terms) {
+ weight.extractTerms(terms);
+ }
+
+ @Override
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
return weight.explain(context, doc);
}
Modified: lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java (original)
+++ lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java Thu Apr 16 15:56:13 2015
@@ -228,9 +228,10 @@ public abstract class ShardSearchingTest
@Override
public Query rewrite(Query original) throws IOException {
- final Query rewritten = super.rewrite(original);
+ final IndexSearcher localSearcher = new IndexSearcher(getIndexReader());
+ final Weight weight = localSearcher.createNormalizedWeight(original, true);
final Set<Term> terms = new HashSet<>();
- rewritten.extractTerms(terms);
+ weight.extractTerms(terms);
// Make a single request to remote nodes for term
// stats:
@@ -254,7 +255,7 @@ public abstract class ShardSearchingTest
}
}
- return rewritten;
+ return weight.getQuery();
}
@Override
Modified: lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/spans/AssertingSpanQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/spans/AssertingSpanQuery.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/spans/AssertingSpanQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/spans/AssertingSpanQuery.java Thu Apr 16 15:56:13 2015
@@ -38,6 +38,11 @@ public class AssertingSpanQuery extends
}
@Override
+ protected void extractTerms(Set<Term> terms) {
+ in.extractTerms(terms);
+ }
+
+ @Override
public Spans getSpans(LeafReaderContext context, Bits acceptDocs, Map<Term,TermContext> termContexts) throws IOException {
Spans spans = in.getSpans(context, acceptDocs, termContexts);
if (spans == null) {
@@ -92,11 +97,6 @@ public class AssertingSpanQuery extends
}
@Override
- public void extractTerms(Set<Term> terms) {
- in.extractTerms(terms);
- }
-
- @Override
public Query clone() {
return new AssertingSpanQuery((SpanQuery) in.clone());
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/schema/LatLonType.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/schema/LatLonType.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/schema/LatLonType.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/schema/LatLonType.java Thu Apr 16 15:56:13 2015
@@ -306,10 +306,6 @@ class SpatialDistanceQuery extends Exten
return bboxQuery != null ? bboxQuery.rewrite(reader) : this;
}
- @Override
- public void extractTerms(Set terms) {}
-
-
protected class SpatialWeight extends Weight {
protected IndexSearcher searcher;
protected float queryNorm;
@@ -327,6 +323,9 @@ class SpatialDistanceQuery extends Exten
}
@Override
+ public void extractTerms(Set terms) {}
+
+ @Override
public float getValueForNormalization() throws IOException {
queryWeight = getBoost();
return queryWeight * queryWeight;
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java Thu Apr 16 15:56:13 2015
@@ -87,10 +87,6 @@ public class ExportQParserPlugin extends
return this.mainQuery.rewrite(reader);
}
- public void extractTerms(Set<Term> terms) {
- this.mainQuery.extractTerms(terms);
- }
-
public TopDocsCollector getTopDocsCollector(int len,
SolrIndexSearcher.QueryCommand cmd,
IndexSearcher searcher) throws IOException {
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java Thu Apr 16 15:56:13 2015
@@ -204,10 +204,6 @@ class JoinQuery extends Query {
}
@Override
- public void extractTerms(Set terms) {
- }
-
- @Override
public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
return new JoinQueryWeight((SolrIndexSearcher)searcher);
}
@@ -280,6 +276,9 @@ class JoinQuery extends Query {
}
@Override
+ public void extractTerms(Set<org.apache.lucene.index.Term> terms) {}
+
+ @Override
public float getValueForNormalization() throws IOException {
queryWeight = getBoost();
return queryWeight * queryWeight;
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java?rev=1674100&r1=1674099&r2=1674100&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java Thu Apr 16 15:56:13 2015
@@ -163,11 +163,6 @@ public class ReRankQParserPlugin extends
}
- public void extractTerms(Set<Term> terms) {
- this.mainQuery.extractTerms(terms);
-
- }
-
public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException{
return new ReRankWeight(mainQuery, reRankQuery, reRankWeight, searcher, needsScores);
}
@@ -187,6 +182,12 @@ public class ReRankQParserPlugin extends
this.mainWeight = mainQuery.createWeight(searcher, needsScores);
}
+ @Override
+ public void extractTerms(Set<Term> terms) {
+ this.mainWeight.extractTerms(terms);
+
+ }
+
public float getValueForNormalization() throws IOException {
return mainWeight.getValueForNormalization();
}