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/10/15 16:27:10 UTC
svn commit: r1708826 - in /lucene/dev/trunk/lucene: CHANGES.txt
core/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java
core/src/java/org/apache/lucene/search/spans/SpanOrQuery.java
Author: jpountz
Date: Thu Oct 15 14:27:10 2015
New Revision: 1708826
URL: http://svn.apache.org/viewvc?rev=1708826&view=rev
Log:
LUCENE-6839: Make SpanOrQuery immutable.
Modified:
lucene/dev/trunk/lucene/CHANGES.txt
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/spans/SpanOrQuery.java
Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=1708826&r1=1708825&r2=1708826&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Thu Oct 15 14:27:10 2015
@@ -111,6 +111,9 @@ API Changes
order to let Lucene know that a Query should be used for filtering but not
scoring.
+* LUCENE-6939: SpanOrQuery.addClause is now deprecated, clauses should all be
+ provided at construction time. (Paul Elschot via Adrien Grand)
+
Optimizations
* LUCENE-6708: TopFieldCollector does not compute the score several times on the
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java?rev=1708826&r1=1708825&r2=1708826&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java Thu Oct 15 14:27:10 2015
@@ -29,6 +29,8 @@ import org.apache.lucene.search.TopTerms
import java.io.IOException;
import java.util.Objects;
+import java.util.List;
+import java.util.ArrayList;
/**
* Wraps any {@link MultiTermQuery} as a {@link SpanQuery},
@@ -156,14 +158,14 @@ public class SpanMultiTermQueryWrapper<Q
* @see #setRewriteMethod
*/
public final static SpanRewriteMethod SCORING_SPAN_QUERY_REWRITE = new SpanRewriteMethod() {
- private final ScoringRewrite<SpanOrQuery> delegate = new ScoringRewrite<SpanOrQuery>() {
+ private final ScoringRewrite<List<SpanQuery>> delegate = new ScoringRewrite<List<SpanQuery>>() {
@Override
- protected SpanOrQuery getTopLevelBuilder() {
- return new SpanOrQuery();
+ protected List<SpanQuery> getTopLevelBuilder() {
+ return new ArrayList<SpanQuery>();
}
- protected Query build(SpanOrQuery builder) {
- return builder;
+ protected Query build(List<SpanQuery> builder) {
+ return new SpanOrQuery(builder.toArray(new SpanQuery[builder.size()]));
}
@Override
@@ -172,9 +174,9 @@ public class SpanMultiTermQueryWrapper<Q
}
@Override
- protected void addClause(SpanOrQuery topLevel, Term term, int docCount, float boost, TermContext states) {
+ protected void addClause(List<SpanQuery> topLevel, Term term, int docCount, float boost, TermContext states) {
final SpanTermQuery q = new SpanTermQuery(term, states);
- topLevel.addClause(q);
+ topLevel.add(q);
}
};
@@ -196,33 +198,33 @@ public class SpanMultiTermQueryWrapper<Q
* @see #setRewriteMethod
*/
public static final class TopTermsSpanBooleanQueryRewrite extends SpanRewriteMethod {
- private final TopTermsRewrite<SpanOrQuery> delegate;
+ private final TopTermsRewrite<List<SpanQuery>> delegate;
/**
* Create a TopTermsSpanBooleanQueryRewrite for
* at most <code>size</code> terms.
*/
public TopTermsSpanBooleanQueryRewrite(int size) {
- delegate = new TopTermsRewrite<SpanOrQuery>(size) {
+ delegate = new TopTermsRewrite<List<SpanQuery>>(size) {
@Override
protected int getMaxSize() {
return Integer.MAX_VALUE;
}
@Override
- protected SpanOrQuery getTopLevelBuilder() {
- return new SpanOrQuery();
+ protected List<SpanQuery> getTopLevelBuilder() {
+ return new ArrayList<SpanQuery>();
}
@Override
- protected Query build(SpanOrQuery builder) {
- return builder;
+ protected Query build(List<SpanQuery> builder) {
+ return new SpanOrQuery(builder.toArray(new SpanQuery[builder.size()]));
}
@Override
- protected void addClause(SpanOrQuery topLevel, Term term, int docFreq, float boost, TermContext states) {
+ protected void addClause(List<SpanQuery> topLevel, Term term, int docFreq, float boost, TermContext states) {
final SpanTermQuery q = new SpanTermQuery(term, states);
- topLevel.addClause(q);
+ topLevel.add(q);
}
};
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/spans/SpanOrQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/spans/SpanOrQuery.java?rev=1708826&r1=1708825&r2=1708826&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/spans/SpanOrQuery.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/spans/SpanOrQuery.java Thu Oct 15 14:27:10 2015
@@ -53,7 +53,7 @@ public final class SpanOrQuery extends S
}
/** Adds a clause to this query */
- public final void addClause(SpanQuery clause) {
+ private final void addClause(SpanQuery clause) {
if (field == null) {
field = clause.getField();
} else if (clause.getField() != null && !clause.getField().equals(field)) {