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/06/18 09:14:07 UTC
svn commit: r1686145 [8/8] - in /lucene/dev/trunk: lucene/
lucene/analysis/common/src/test/org/apache/lucene/analysis/shingle/
lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/
lucene/benchmark/src/java/org/apache/lucene/benchmark/qua...
Modified: lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/BaseExplanationTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/BaseExplanationTestCase.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/BaseExplanationTestCase.java (original)
+++ lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/BaseExplanationTestCase.java Thu Jun 18 07:14:05 2015
@@ -115,11 +115,11 @@ public abstract class BaseExplanationTes
* Convenience subclass of TermsQuery
*/
protected Query matchTheseItems(int[] terms) {
- BooleanQuery query = new BooleanQuery();
+ BooleanQuery.Builder query = new BooleanQuery.Builder();
for(int term : terms) {
query.add(new BooleanClause(new TermQuery(new Term(KEY, ""+term)), BooleanClause.Occur.SHOULD));
}
- return query;
+ return query.build();
}
/** helper for generating MultiPhraseQueries */
@@ -199,10 +199,11 @@ public abstract class BaseExplanationTes
* with a second prohibited clause which will never match anything
*/
public Query optB(Query q) throws Exception {
- BooleanQuery bq = new BooleanQuery(true);
+ BooleanQuery.Builder bq = new BooleanQuery.Builder();
+ bq.setDisableCoord(true);
bq.add(q, BooleanClause.Occur.SHOULD);
bq.add(new TermQuery(new Term("NEVER","MATCH")), BooleanClause.Occur.MUST_NOT);
- return bq;
+ return bq.build();
}
/**
@@ -210,9 +211,10 @@ public abstract class BaseExplanationTes
* with a second optional clause which will match everything
*/
public Query reqB(Query q) throws Exception {
- BooleanQuery bq = new BooleanQuery(true);
+ BooleanQuery.Builder bq = new BooleanQuery.Builder();
+ bq.setDisableCoord(true);
bq.add(q, BooleanClause.Occur.MUST);
bq.add(new TermQuery(new Term(FIELD,"w1")), BooleanClause.Occur.SHOULD);
- return bq;
+ return bq.build();
}
}
Added: lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/ScorerIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/ScorerIndexSearcher.java?rev=1686145&view=auto
==============================================================================
--- lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/ScorerIndexSearcher.java (added)
+++ lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/ScorerIndexSearcher.java Thu Jun 18 07:14:05 2015
@@ -0,0 +1,62 @@
+package org.apache.lucene.search;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.IOException;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.LeafReaderContext;
+
+/**
+ * An {@link IndexSearcher} that always uses the {@link Scorer} API, never {@link BulkScorer}.
+ */
+public class ScorerIndexSearcher extends IndexSearcher {
+
+ /** Creates a searcher searching the provided index. Search on individual
+ * segments will be run in the provided {@link ExecutorService}.
+ * @see IndexSearcher#IndexSearcher(IndexReader, ExecutorService) */
+ public ScorerIndexSearcher(IndexReader r, ExecutorService executor) {
+ super(r, executor);
+ }
+
+ /** Creates a searcher searching the provided index.
+ * @see IndexSearcher#IndexSearcher(IndexReader) */
+ public ScorerIndexSearcher(IndexReader r) {
+ super(r);
+ }
+
+ @Override
+ protected void search(List<LeafReaderContext> leaves, Weight weight, Collector collector) throws IOException {
+ for (LeafReaderContext ctx : leaves) { // search each subreader
+ // we force the use of Scorer (not BulkScorer) to make sure
+ // that the scorer passed to LeafCollector.setScorer supports
+ // Scorer.getChildren
+ Scorer scorer = weight.scorer(ctx, ctx.reader().getLiveDocs());
+ if (scorer != null) {
+ final LeafCollector leafCollector = collector.getLeafCollector(ctx);
+ leafCollector.setScorer(scorer);
+ for (int doc = scorer.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = scorer.nextDoc()) {
+ leafCollector.collect(doc);
+ }
+ }
+ }
+ }
+
+}
\ No newline at end of file
Modified: lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/SearchEquivalenceTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/SearchEquivalenceTestBase.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/SearchEquivalenceTestBase.java (original)
+++ lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/SearchEquivalenceTestBase.java Thu Jun 18 07:14:05 2015
@@ -343,9 +343,9 @@ public abstract class SearchEquivalenceT
}
protected Query filteredBooleanQuery(Query query, Filter filter) {
- BooleanQuery bq = new BooleanQuery();
+ BooleanQuery.Builder bq = new BooleanQuery.Builder();
bq.add(query, Occur.MUST);
bq.add(filter, Occur.FILTER);
- return bq;
+ return bq.build();
}
}
Modified: lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestHierarchicalDocBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestHierarchicalDocBuilder.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestHierarchicalDocBuilder.java (original)
+++ lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestHierarchicalDocBuilder.java Thu Jun 18 07:14:05 2015
@@ -220,9 +220,9 @@ public class TestHierarchicalDocBuilder
private Query createBlockJoinQuery(Hierarchy hierarchy) {
List<Hierarchy> elements = hierarchy.elements;
if (elements.isEmpty()) {
- BooleanQuery childQuery = new BooleanQuery();
+ BooleanQuery.Builder childQuery = new BooleanQuery.Builder();
childQuery.add(new TermQuery(new Term(FIELD_ID, (String) hierarchy.elementData.get(FIELD_ID))), Occur.MUST);
- return childQuery;
+ return childQuery.build();
}
Query childQuery = createBlockJoinQuery(elements.get(random().nextInt(elements.size())));
@@ -230,9 +230,9 @@ public class TestHierarchicalDocBuilder
}
private ToParentBlockJoinQuery createToParentQuery(String parentType, String childField, String childFieldValue) {
- BooleanQuery childQuery = new BooleanQuery();
+ BooleanQuery.Builder childQuery = new BooleanQuery.Builder();
childQuery.add(new TermQuery(new Term(childField, childFieldValue)), Occur.MUST);
- ToParentBlockJoinQuery result = createToParentQuery(parentType, childQuery);
+ ToParentBlockJoinQuery result = createToParentQuery(parentType, childQuery.build());
return result;
}
@@ -458,9 +458,9 @@ public class TestHierarchicalDocBuilder
private final String childEntityTemplate = "<entity " + ConfigNameConstants.CHILD + "=\"true\" name=\"{0}\" query=\"{1}\">\n {2} {3} </entity>\n";
private BitDocIdSetFilter createParentFilter(String type) {
- BooleanQuery parentQuery = new BooleanQuery();
+ BooleanQuery.Builder parentQuery = new BooleanQuery.Builder();
parentQuery.add(new TermQuery(new Term("type_s", type)), Occur.MUST);
- return new BitDocIdSetCachingWrapperFilter(new QueryWrapperFilter(parentQuery));
+ return new BitDocIdSetCachingWrapperFilter(new QueryWrapperFilter(parentQuery.build()));
}
private String nextId() {
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java Thu Jun 18 07:14:05 2015
@@ -63,6 +63,7 @@ import java.io.Reader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
@@ -369,14 +370,19 @@ public class MoreLikeThisHandler extends
private Query getBoostedQuery(Query mltquery) {
BooleanQuery boostedQuery = (BooleanQuery)mltquery.clone();
if (boostFields.size() > 0) {
- List clauses = boostedQuery.clauses();
- for( Object o : clauses ) {
- TermQuery q = (TermQuery)((BooleanClause)o).getQuery();
+ BooleanQuery.Builder newQ = new BooleanQuery.Builder();
+ newQ.setDisableCoord(boostedQuery.isCoordDisabled());
+ newQ.setMinimumNumberShouldMatch(boostedQuery.getMinimumNumberShouldMatch());
+ for (BooleanClause clause : boostedQuery) {
+ TermQuery q = (TermQuery) clause.getQuery();
Float b = this.boostFields.get(q.getTerm().field());
if (b != null) {
+ q = (TermQuery) q.clone();
q.setBoost(b*q.getBoost());
}
+ newQ.add(q, clause.getOccur());
}
+ boostedQuery = newQ.build();
}
return boostedQuery;
}
@@ -391,17 +397,18 @@ public class MoreLikeThisHandler extends
}
// exclude current document from results
- realMLTQuery = new BooleanQuery();
+ BooleanQuery.Builder realMLTQuery = new BooleanQuery.Builder();
realMLTQuery.add(boostedMLTQuery, BooleanClause.Occur.MUST);
realMLTQuery.add(
new TermQuery(new Term(uniqueKeyField.getName(), uniqueKeyField.getType().storedToIndexed(doc.getField(uniqueKeyField.getName())))),
BooleanClause.Occur.MUST_NOT);
+ this.realMLTQuery = realMLTQuery.build();
DocListAndSet results = new DocListAndSet();
if (this.needDocSet) {
- results = searcher.getDocListAndSet(realMLTQuery, filters, null, start, rows, flags);
+ results = searcher.getDocListAndSet(this.realMLTQuery, filters, null, start, rows, flags);
} else {
- results.docList = searcher.getDocList(realMLTQuery, filters, null, start, rows, flags);
+ results.docList = searcher.getDocList(this.realMLTQuery, filters, null, start, rows, flags);
}
return results;
}
@@ -456,12 +463,12 @@ public class MoreLikeThisHandler extends
mltquery = (BooleanQuery) getBoostedQuery(mltquery);
// exclude current document from results
- BooleanQuery mltQuery = new BooleanQuery();
+ BooleanQuery.Builder mltQuery = new BooleanQuery.Builder();
mltQuery.add(mltquery, BooleanClause.Occur.MUST);
mltQuery.add(
new TermQuery(new Term(uniqueKeyField.getName(), uniqueId)), BooleanClause.Occur.MUST_NOT);
- result.add(uniqueId, mltQuery);
+ result.add(uniqueId, mltQuery.build());
}
return result;
@@ -469,9 +476,9 @@ public class MoreLikeThisHandler extends
private void fillInterestingTermsFromMLTQuery( Query query, List<InterestingTerm> terms )
{
- List clauses = ((BooleanQuery)query).clauses();
- for( Object o : clauses ) {
- TermQuery q = (TermQuery)((BooleanClause)o).getQuery();
+ Collection<BooleanClause> clauses = ((BooleanQuery)query).clauses();
+ for( BooleanClause o : clauses ) {
+ TermQuery q = (TermQuery) o.getQuery();
InterestingTerm it = new InterestingTerm();
it.boost = q.getBoost();
it.term = q.getTerm();
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java Thu Jun 18 07:14:05 2015
@@ -39,6 +39,7 @@ import org.apache.lucene.index.Term;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.FieldComparator;
import org.apache.lucene.search.LeafFieldComparator;
+import org.apache.lucene.search.MatchNoDocsQuery;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.Scorer;
@@ -157,7 +158,7 @@ public class QueryComponent extends Sear
Query q = parser.getQuery();
if (q == null) {
// normalize a null query to a query that matches nothing
- q = new BooleanQuery();
+ q = new MatchNoDocsQuery();
}
rb.setQuery( q );
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java Thu Jun 18 07:14:05 2015
@@ -142,8 +142,7 @@ public class QueryElevationComponent ext
this.ids = new HashSet<>();
this.excludeIds = new HashSet<>();
- this.include = new BooleanQuery();
- this.include.setBoost(0);
+ BooleanQuery.Builder include = new BooleanQuery.Builder();
this.priority = new HashMap<>();
int max = elevate.size() + 5;
for (String id : elevate) {
@@ -153,6 +152,8 @@ public class QueryElevationComponent ext
include.add(tq, BooleanClause.Occur.SHOULD);
this.priority.put(new BytesRef(id), max--);
}
+ this.include = include.build();
+ this.include.setBoost(0);
if (exclude == null || exclude.isEmpty()) {
this.exclude = null;
@@ -421,7 +422,8 @@ public class QueryElevationComponent ext
//we only want these results
rb.setQuery(booster.include);
} else {
- BooleanQuery newq = new BooleanQuery(true);
+ BooleanQuery.Builder newq = new BooleanQuery.Builder();
+ newq.setDisableCoord(true);
newq.add(query, BooleanClause.Occur.SHOULD);
newq.add(booster.include, BooleanClause.Occur.SHOULD);
if (booster.exclude != null) {
@@ -435,7 +437,7 @@ public class QueryElevationComponent ext
rb.req.getContext().put(EXCLUDED, booster.excludeIds);
}
}
- rb.setQuery(newq);
+ rb.setQuery(newq.build());
}
ElevationComparatorSource comparator = new ElevationComparatorSource(booster);
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java Thu Jun 18 07:14:05 2015
@@ -149,7 +149,7 @@ public abstract class SolrQueryParserBas
try {
// TopLevelQuery is a Query followed by the end-of-input (EOF)
Query res = TopLevelQuery(null); // pass null so we can tell later if an explicit field was provided or not
- return res!=null ? res : newBooleanQuery(false);
+ return res!=null ? res : newBooleanQuery(false).build();
}
catch (ParseException | TokenMgrError tme) {
throw new SyntaxError("Cannot parse '" +query+ "': " + tme.getMessage(), tme);
@@ -321,7 +321,7 @@ public abstract class SolrQueryParserBas
if (clauses.size() > 0 && conj == CONJ_AND) {
BooleanClause c = clauses.get(clauses.size()-1);
if (!c.isProhibited())
- c.setOccur(BooleanClause.Occur.MUST);
+ clauses.set(clauses.size() - 1, new BooleanClause(c.getQuery(), BooleanClause.Occur.MUST));
}
if (clauses.size() > 0 && operator == AND_OPERATOR && conj == CONJ_OR) {
@@ -331,7 +331,7 @@ public abstract class SolrQueryParserBas
// this modification a OR b would parsed as +a OR b
BooleanClause c = clauses.get(clauses.size()-1);
if (!c.isProhibited())
- c.setOccur(BooleanClause.Occur.SHOULD);
+ clauses.set(clauses.size() - 1, new BooleanClause(c.getQuery(), BooleanClause.Occur.SHOULD));
}
// We might have been passed a null query; the term might have been
@@ -509,11 +509,11 @@ public abstract class SolrQueryParserBas
if (clauses.size()==0) {
return null; // all clause words were filtered away by the analyzer.
}
- BooleanQuery query = newBooleanQuery(disableCoord);
+ BooleanQuery.Builder query = newBooleanQuery(disableCoord);
for(final BooleanClause clause: clauses) {
query.add(clause);
}
- return query;
+ return query.build();
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/CurrencyField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/CurrencyField.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/CurrencyField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/CurrencyField.java Thu Jun 18 07:14:05 2015
@@ -335,11 +335,11 @@ public class CurrencyField extends Field
p1 == null ? null : p1.getAmount() + "",
p2 == null ? null : p2.getAmount() + "",
minInclusive, maxInclusive);
- final BooleanQuery docsInRange = new BooleanQuery();
+ final BooleanQuery.Builder docsInRange = new BooleanQuery.Builder();
docsInRange.add(docsWithValues, Occur.FILTER);
docsInRange.add(vsRangeFilter, Occur.FILTER);
- return new SolrConstantScoreQuery(new QueryWrapperFilter(docsInRange));
+ return new SolrConstantScoreQuery(new QueryWrapperFilter(docsInRange.build()));
}
@Override
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/LatLonType.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/LatLonType.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/LatLonType.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/LatLonType.java Thu Jun 18 07:14:05 2015
@@ -99,13 +99,14 @@ public class LatLonType extends Abstract
SchemaField latSF = subField(field, LAT, parser.getReq().getSchema());
SchemaField lonSF = subField(field, LON, parser.getReq().getSchema());
- BooleanQuery result = new BooleanQuery(true);
+ BooleanQuery.Builder result = new BooleanQuery.Builder();
+ result.setDisableCoord(true);
// points must currently be ordered... should we support specifying any two opposite corner points?
result.add(latSF.getType().getRangeQuery(parser, latSF,
Double.toString(p1.getY()), Double.toString(p2.getY()), minInclusive, maxInclusive), BooleanClause.Occur.MUST);
result.add(lonSF.getType().getRangeQuery(parser, lonSF,
Double.toString(p1.getX()), Double.toString(p2.getX()), minInclusive, maxInclusive), BooleanClause.Occur.MUST);
- return result;
+ return result.build();
}
@Override
@@ -114,12 +115,13 @@ public class LatLonType extends Abstract
SchemaField latSF = subField(field, LAT, parser.getReq().getSchema());
SchemaField lonSF = subField(field, LON, parser.getReq().getSchema());
- BooleanQuery result = new BooleanQuery(true);
+ BooleanQuery.Builder result = new BooleanQuery.Builder();
+ result.setDisableCoord(true);
result.add(latSF.getType().getFieldQuery(parser, latSF,
Double.toString(p1.getY())), BooleanClause.Occur.MUST);
result.add(lonSF.getType().getFieldQuery(parser, lonSF,
Double.toString(p1.getX())), BooleanClause.Occur.MUST);
- return result;
+ return result.build();
}
@@ -159,7 +161,7 @@ public class LatLonType extends Abstract
if (options.bbox) {
- BooleanQuery result = new BooleanQuery();
+ BooleanQuery.Builder result = new BooleanQuery.Builder();
Query latRange = latSF.getType().getRangeQuery(parser, latSF,
String.valueOf(latMin),
@@ -174,7 +176,7 @@ public class LatLonType extends Abstract
true, true);
if (lon2Min != -180 || lon2Max != 180) {
// another valid longitude range
- BooleanQuery bothLons = new BooleanQuery();
+ BooleanQuery.Builder bothLons = new BooleanQuery.Builder();
bothLons.add(lonRange, BooleanClause.Occur.SHOULD);
lonRange = lonSF.getType().getRangeQuery(parser, lonSF,
@@ -183,13 +185,13 @@ public class LatLonType extends Abstract
true, true);
bothLons.add(lonRange, BooleanClause.Occur.SHOULD);
- lonRange = bothLons;
+ lonRange = bothLons.build();
}
result.add(lonRange, BooleanClause.Occur.MUST);
}
- spatial.bboxQuery = result;
+ spatial.bboxQuery = result.build();
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/PointType.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/PointType.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/PointType.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/PointType.java Thu Jun 18 07:14:05 2015
@@ -137,26 +137,28 @@ public class PointType extends Coordinat
String[] p1 = parseCommaSeparatedList(part1, dimension);
String[] p2 = parseCommaSeparatedList(part2, dimension);
- BooleanQuery result = new BooleanQuery(true);
+ BooleanQuery.Builder result = new BooleanQuery.Builder();
+ result.setDisableCoord(true);
for (int i = 0; i < dimension; i++) {
SchemaField subSF = subField(field, i, schema);
// points must currently be ordered... should we support specifying any two opposite corner points?
result.add(subSF.getType().getRangeQuery(parser, subSF, p1[i], p2[i], minInclusive, maxInclusive), BooleanClause.Occur.MUST);
}
- return result;
+ return result.build();
}
@Override
public Query getFieldQuery(QParser parser, SchemaField field, String externalVal) {
String[] p1 = parseCommaSeparatedList(externalVal, dimension);
//TODO: should we assert that p1.length == dimension?
- BooleanQuery bq = new BooleanQuery(true);
+ BooleanQuery.Builder bq = new BooleanQuery.Builder();
+ bq.setDisableCoord(true);
for (int i = 0; i < dimension; i++) {
SchemaField sf = subField(field, i, schema);
Query tq = sf.getType().getFieldQuery(parser, sf, p1[i]);
bq.add(tq, BooleanClause.Occur.MUST);
}
- return bq;
+ return bq.build();
}
/**
@@ -188,7 +190,7 @@ public class PointType extends Coordinat
// points must currently be ordered... should we support specifying any two opposite corner points?
return subSF.getType().getRangeQuery(parser, subSF, lower, upper, true, true);
} else {
- BooleanQuery tmp = new BooleanQuery();
+ BooleanQuery.Builder tmp = new BooleanQuery.Builder();
//TODO: Handle distance measures, as this assumes Euclidean
double[] ur = vectorBoxCorner(point, null, options.distance, true);
double[] ll = vectorBoxCorner(point, null, options.distance, false);
@@ -197,7 +199,7 @@ public class PointType extends Coordinat
Query range = subSF.getType().getRangeQuery(parser, subSF, String.valueOf(ll[i]), String.valueOf(ur[i]), true, true);
tmp.add(range, BooleanClause.Occur.MUST);
}
- return tmp;
+ return tmp.build();
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/DisMaxQParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/DisMaxQParser.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/DisMaxQParser.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/DisMaxQParser.java Thu Jun 18 07:14:05 2015
@@ -105,7 +105,8 @@ public class DisMaxQParser extends QPars
/* the main query we will execute. we disable the coord because
* this query is an artificial construct
*/
- BooleanQuery query = new BooleanQuery(true);
+ BooleanQuery.Builder query = new BooleanQuery.Builder();
+ query.setDisableCoord(true);
boolean notBlank = addMainQuery(query, solrParams);
if (!notBlank)
@@ -113,10 +114,10 @@ public class DisMaxQParser extends QPars
addBoostQuery(query, solrParams);
addBoostFunctions(query, solrParams);
- return query;
+ return query.build();
}
- protected void addBoostFunctions(BooleanQuery query, SolrParams solrParams) throws SyntaxError {
+ protected void addBoostFunctions(BooleanQuery.Builder query, SolrParams solrParams) throws SyntaxError {
String[] boostFuncs = solrParams.getParams(DisMaxParams.BF);
if (null != boostFuncs && 0 != boostFuncs.length) {
for (String boostFunc : boostFuncs) {
@@ -134,7 +135,7 @@ public class DisMaxQParser extends QPars
}
}
- protected void addBoostQuery(BooleanQuery query, SolrParams solrParams) throws SyntaxError {
+ protected void addBoostQuery(BooleanQuery.Builder query, SolrParams solrParams) throws SyntaxError {
boostParams = solrParams.getParams(DisMaxParams.BQ);
//List<Query> boostQueries = SolrPluginUtils.parseQueryStrings(req, boostParams);
boostQueries = null;
@@ -169,7 +170,7 @@ public class DisMaxQParser extends QPars
}
/** Adds the main query to the query argument. If it's blank then false is returned. */
- protected boolean addMainQuery(BooleanQuery query, SolrParams solrParams) throws SyntaxError {
+ protected boolean addMainQuery(BooleanQuery.Builder query, SolrParams solrParams) throws SyntaxError {
Map<String, Float> phraseFields = SolrPluginUtils.parseFieldBoosts(solrParams.getParams(DisMaxParams.PF));
float tiebreaker = solrParams.getFloat(DisMaxParams.TIE, 0.0f);
@@ -240,10 +241,10 @@ public class DisMaxQParser extends QPars
Query query = dis;
if (dis instanceof BooleanQuery) {
- BooleanQuery t = new BooleanQuery();
+ BooleanQuery.Builder t = new BooleanQuery.Builder();
SolrPluginUtils.flattenBooleanQuery(t, (BooleanQuery) dis);
SolrPluginUtils.setMinShouldMatch(t, minShouldMatch);
- query = t;
+ query = t.build();
}
return query;
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java Thu Jun 18 07:14:05 2015
@@ -142,7 +142,8 @@ public class ExtendedDismaxQParser exten
/* the main query we will execute. we disable the coord because
* this query is an artificial construct
*/
- BooleanQuery query = new BooleanQuery(true);
+ BooleanQuery.Builder query = new BooleanQuery.Builder();
+ query.setDisableCoord(true);
/* * * Main User Query * * */
parsedUserQuery = null;
@@ -209,13 +210,13 @@ public class ExtendedDismaxQParser exten
//
// create a boosted query (scores multiplied by boosts)
//
- Query topQuery = query;
+ Query topQuery = query.build();
List<ValueSource> boosts = getMultiplicativeBoosts();
if (boosts.size()>1) {
ValueSource prod = new ProductFloatFunction(boosts.toArray(new ValueSource[boosts.size()]));
- topQuery = new BoostedQuery(query, prod);
+ topQuery = new BoostedQuery(topQuery, prod);
} else if (boosts.size() == 1) {
- topQuery = new BoostedQuery(query, boosts.get(0));
+ topQuery = new BoostedQuery(topQuery, boosts.get(0));
}
return topQuery;
@@ -225,7 +226,7 @@ public class ExtendedDismaxQParser exten
* Adds shingled phrase queries to all the fields specified in the pf, pf2 anf pf3 parameters
*
*/
- protected void addPhraseFieldQueries(BooleanQuery query, List<Clause> clauses,
+ protected void addPhraseFieldQueries(BooleanQuery.Builder query, List<Clause> clauses,
ExtendedDismaxConfiguration config) throws SyntaxError {
// sloppy phrase queries for proximity
@@ -296,10 +297,10 @@ public class ExtendedDismaxQParser exten
Query query = up.parse(escapedUserQuery);
if (query instanceof BooleanQuery) {
- BooleanQuery t = new BooleanQuery();
+ BooleanQuery.Builder t = new BooleanQuery.Builder();
SolrPluginUtils.flattenBooleanQuery(t, (BooleanQuery)query);
SolrPluginUtils.setMinShouldMatch(t, config.minShouldMatch);
- query = t;
+ query = t.build();
}
return query;
}
@@ -340,7 +341,7 @@ public class ExtendedDismaxQParser exten
// were explicit operators (except for AND).
boolean doMinMatched = doMinMatched(clauses, config.lowercaseOperators);
if (doMinMatched && query instanceof BooleanQuery) {
- SolrPluginUtils.setMinShouldMatch((BooleanQuery)query, config.minShouldMatch);
+ query = SolrPluginUtils.setMinShouldMatch((BooleanQuery)query, config.minShouldMatch);
}
return query;
}
@@ -527,7 +528,7 @@ public class ExtendedDismaxQParser exten
* @param shingleSize how big the phrases should be, 0 means a single phrase
* @param tiebreaker tie breaker value for the DisjunctionMaxQueries
*/
- protected void addShingledPhraseQueries(final BooleanQuery mainQuery,
+ protected void addShingledPhraseQueries(final BooleanQuery.Builder mainQuery,
final List<Clause> clauses,
final Collection<FieldParams> fields,
int shingleSize,
@@ -1150,11 +1151,12 @@ public class ExtendedDismaxQParser exten
return q;
} else {
// should we disable coord?
- BooleanQuery q = new BooleanQuery(disableCoord);
+ BooleanQuery.Builder q = new BooleanQuery.Builder();
+ q.setDisableCoord(disableCoord);
for (Query sub : lst) {
q.add(sub, BooleanClause.Occur.SHOULD);
}
- return q;
+ return q.build();
}
} else {
@@ -1236,7 +1238,7 @@ public class ExtendedDismaxQParser exten
if (query instanceof BooleanQuery) {
BooleanQuery bq = (BooleanQuery) query;
if (!bq.isCoordDisabled()) {
- SolrPluginUtils.setMinShouldMatch(bq, minShouldMatch);
+ query = SolrPluginUtils.setMinShouldMatch(bq, minShouldMatch);
}
}
if (query instanceof PhraseQuery) {
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/LuceneQueryOptimizer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/LuceneQueryOptimizer.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/LuceneQueryOptimizer.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/LuceneQueryOptimizer.java Thu Jun 18 07:14:05 2015
@@ -62,8 +62,8 @@ class LuceneQueryOptimizer {
)
throws IOException {
- BooleanQuery query = new BooleanQuery();
- BooleanQuery filterQuery = null;
+ BooleanQuery.Builder query = new BooleanQuery.Builder();
+ BooleanQuery.Builder filterQuery = null;
for (BooleanClause c : original.clauses()) {
@@ -83,7 +83,7 @@ if (c.query instanceof TermQuery) {
&& (searcher.docFreq(((TermQuery)q).getTerm())
/ (float)searcher.maxDoc()) >= threshold) { // check threshold
if (filterQuery == null)
- filterQuery = new BooleanQuery();
+ filterQuery = new BooleanQuery.Builder();
filterQuery.add(q, BooleanClause.Occur.MUST); // filter it
//System.out.println("WooHoo... qualified to be hoisted to a filter!");
} else {
@@ -97,7 +97,7 @@ if (c.query instanceof TermQuery) {
filter = (Filter)cache.get(filterQuery);
}
if (filter == null) { // miss
- filter = new QueryWrapperFilter(new CachingWrapperQuery(filterQuery)); // construct new entry
+ filter = new QueryWrapperFilter(new CachingWrapperQuery(filterQuery.build())); // construct new entry
synchronized (cache) {
cache.put(filterQuery, filter); // cache it
}
@@ -107,10 +107,10 @@ if (c.query instanceof TermQuery) {
// YCS: added code to pass out optimized query and filter
// so they can be used with Hits
if (queryOut != null && filterOut != null) {
- queryOut[0] = query; filterOut[0] = filter;
+ queryOut[0] = query.build(); filterOut[0] = filter;
return null;
} else {
- return searcher.search(new FilteredQuery(query, filter), numHits);
+ return searcher.search(new FilteredQuery(query.build(), filter), numHits);
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/MaxScoreQParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/MaxScoreQParser.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/MaxScoreQParser.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/MaxScoreQParser.java Thu Jun 18 07:14:05 2015
@@ -60,24 +60,25 @@ public class MaxScoreQParser extends Luc
BooleanQuery obq = (BooleanQuery)q;
Collection<Query> should = new ArrayList<>();
Collection<BooleanClause> prohibOrReq = new ArrayList<>();
- BooleanQuery newq = new BooleanQuery();
+ BooleanQuery.Builder newqb = new BooleanQuery.Builder();
- for (BooleanClause clause : obq.getClauses()) {
+ for (BooleanClause clause : obq) {
if(clause.isProhibited() || clause.isRequired()) {
prohibOrReq.add(clause);
} else {
- BooleanQuery bq = new BooleanQuery();
+ BooleanQuery.Builder bq = new BooleanQuery.Builder();
bq.add(clause);
- should.add(bq);
+ should.add(bq.build());
}
}
if (should.size() > 0) {
DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(should, tie);
- newq.add(dmq, BooleanClause.Occur.SHOULD);
+ newqb.add(dmq, BooleanClause.Occur.SHOULD);
}
for(BooleanClause c : prohibOrReq) {
- newq.add(c);
+ newqb.add(c);
}
+ Query newq = newqb.build();
newq.setBoost(obq.getBoost());
return newq;
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/QueryUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/QueryUtils.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/QueryUtils.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/QueryUtils.java Thu Jun 18 07:14:05 2015
@@ -18,11 +18,12 @@
package org.apache.solr.search;
import org.apache.lucene.search.BooleanClause;
+import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.lucene.search.Query;
-import java.util.List;
+import java.util.Collection;
/**
*
@@ -33,7 +34,7 @@ public class QueryUtils {
public static boolean isNegative(Query q) {
if (!(q instanceof BooleanQuery)) return false;
BooleanQuery bq = (BooleanQuery)q;
- List<BooleanClause> clauses = bq.clauses();
+ Collection<BooleanClause> clauses = bq.clauses();
if (clauses.size()==0) return false;
for (BooleanClause clause : clauses) {
if (!clause.isProhibited()) return false;
@@ -64,7 +65,7 @@ public class QueryUtils {
if (!(q instanceof BooleanQuery)) return q;
BooleanQuery bq = (BooleanQuery)q;
- List<BooleanClause> clauses = bq.clauses();
+ Collection<BooleanClause> clauses = bq.clauses();
if (clauses.size()==0) return q;
@@ -74,20 +75,22 @@ public class QueryUtils {
if (clauses.size()==1) {
// if only one clause, dispense with the wrapping BooleanQuery
- Query negClause = clauses.get(0).getQuery();
+ Query negClause = clauses.iterator().next().getQuery();
// we shouldn't need to worry about adjusting the boosts since the negative
// clause would have never been selected in a positive query, and hence would
// not contribute to a score.
return negClause;
} else {
- BooleanQuery newBq = new BooleanQuery(bq.isCoordDisabled());
- newBq.setBoost(bq.getBoost());
+ BooleanQuery.Builder newBqB = new BooleanQuery.Builder();
+ newBqB.setDisableCoord(bq.isCoordDisabled());
// ignore minNrShouldMatch... it doesn't make sense for a negative query
// the inverse of -a -b is a OR b
for (BooleanClause clause : clauses) {
- newBq.add(clause.getQuery(), BooleanClause.Occur.SHOULD);
+ newBqB.add(clause.getQuery(), BooleanClause.Occur.SHOULD);
}
+ Query newBq = newBqB.build();
+ newBq.setBoost(bq.getBoost());
return newBq;
}
}
@@ -106,9 +109,17 @@ public class QueryUtils {
* The query passed in *must* be a negative query.
*/
public static Query fixNegativeQuery(Query q) {
- BooleanQuery newBq = (BooleanQuery)q.clone();
- newBq.add(new MatchAllDocsQuery(), BooleanClause.Occur.MUST);
- return newBq;
+ BooleanQuery bq = (BooleanQuery) q;
+ BooleanQuery.Builder newBqB = new BooleanQuery.Builder();
+ newBqB.setDisableCoord(bq.isCoordDisabled());
+ newBqB.setMinimumNumberShouldMatch(bq.getMinimumNumberShouldMatch());
+ for (BooleanClause clause : bq) {
+ newBqB.add(clause);
+ }
+ newBqB.add(new MatchAllDocsQuery(), Occur.MUST);
+ BooleanQuery newBq = newBqB.build();
+ newBq.setBoost(bq.getBoost());
+ return newBq;
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SimpleQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SimpleQParserPlugin.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SimpleQParserPlugin.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SimpleQParserPlugin.java Thu Jun 18 07:14:05 2015
@@ -185,7 +185,8 @@ public class SimpleQParserPlugin extends
@Override
protected Query newPrefixQuery(String text) {
- BooleanQuery bq = new BooleanQuery(true);
+ BooleanQuery.Builder bq = new BooleanQuery.Builder();
+ bq.setDisableCoord(true);
for (Map.Entry<String, Float> entry : weights.entrySet()) {
String field = entry.getKey();
@@ -208,7 +209,7 @@ public class SimpleQParserPlugin extends
bq.add(prefix, BooleanClause.Occur.SHOULD);
}
- return simplify(bq);
+ return simplify(bq.build());
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java Thu Jun 18 07:14:05 2015
@@ -2106,10 +2106,10 @@ public class SolrIndexSearcher extends I
// NOTE: we cannot use FilteredQuery, because BitDocSet assumes it will never
// have deleted documents, but UninvertedField's doNegative has sets with deleted docs
TotalHitCountCollector collector = new TotalHitCountCollector();
- BooleanQuery bq = new BooleanQuery();
+ BooleanQuery.Builder bq = new BooleanQuery.Builder();
bq.add(QueryUtils.makeQueryable(a), BooleanClause.Occur.MUST);
bq.add(new ConstantScoreQuery(b.getTopFilter()), BooleanClause.Occur.MUST);
- super.search(bq, collector);
+ super.search(bq.build(), collector);
return collector.getTotalHits();
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java Thu Jun 18 07:14:05 2015
@@ -27,6 +27,7 @@ import org.apache.lucene.search.BooleanC
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.DocValuesTermsQuery;
import org.apache.lucene.search.Filter;
+import org.apache.lucene.search.MatchNoDocsQuery;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.QueryWrapperFilter;
import org.apache.lucene.search.TermQuery;
@@ -73,11 +74,12 @@ public class TermsQParserPlugin extends
booleanQuery {
@Override
Filter makeFilter(String fname, BytesRef[] byteRefs) {
- BooleanQuery bq = new BooleanQuery(true);
+ BooleanQuery.Builder bq = new BooleanQuery.Builder();
+ bq.setDisableCoord(true);
for (BytesRef byteRef : byteRefs) {
bq.add(new TermQuery(new Term(fname, byteRef)), BooleanClause.Occur.SHOULD);
}
- return new QueryWrapperFilter(bq);
+ return new QueryWrapperFilter(bq.build());
}
},
automaton {
@@ -114,7 +116,7 @@ public class TermsQParserPlugin extends
if (sepIsSpace)
qstr = qstr.trim();
if (qstr.length() == 0)
- return new BooleanQuery();//Matches nothing.
+ return new MatchNoDocsQuery();
final String[] splitVals = sepIsSpace ? qstr.split("\\s+") : qstr.split(Pattern.quote(separator), -1);
assert splitVals.length > 0;
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/facet/FacetRequest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/facet/FacetRequest.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/facet/FacetRequest.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/facet/FacetRequest.java Thu Jun 18 07:14:05 2015
@@ -417,9 +417,9 @@ class FacetProcessor<FacetRequestT exten
public static Query getFieldMissingQuery(SolrIndexSearcher searcher, String fieldName) throws IOException {
SchemaField sf = searcher.getSchema().getField(fieldName);
Query hasVal = sf.getType().getRangeQuery(null, sf, null, null, false, false);
- BooleanQuery noVal = new BooleanQuery();
+ BooleanQuery.Builder noVal = new BooleanQuery.Builder();
noVal.add(hasVal, BooleanClause.Occur.MUST_NOT);
- return noVal;
+ return noVal.build();
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java Thu Jun 18 07:14:05 2015
@@ -241,11 +241,11 @@ public class DirectUpdateHandler2 extend
// SolrCore.verbose("updateDocument",updateTerm,"DONE");
if (del) { // ensure id remains unique
- BooleanQuery bq = new BooleanQuery();
+ BooleanQuery.Builder bq = new BooleanQuery.Builder();
bq.add(new BooleanClause(new TermQuery(updateTerm),
Occur.MUST_NOT));
bq.add(new BooleanClause(new TermQuery(idTerm), Occur.MUST));
- writer.deleteDocuments(new DeleteByQueryWrapper(bq, core.getLatestSchema()));
+ writer.deleteDocuments(new DeleteByQueryWrapper(bq.build(), core.getLatestSchema()));
}
// Add to the transaction log *after* successfully adding to the
@@ -355,14 +355,14 @@ public class DirectUpdateHandler2 extend
// Make sure not to delete newer versions
if (ulog != null && cmd.getVersion() != 0 && cmd.getVersion() != -Long.MAX_VALUE) {
- BooleanQuery bq = new BooleanQuery();
+ BooleanQuery.Builder bq = new BooleanQuery.Builder();
bq.add(q, Occur.MUST);
SchemaField sf = ulog.getVersionInfo().getVersionField();
ValueSource vs = sf.getType().getValueSource(sf, null);
ValueSourceRangeFilter filt = new ValueSourceRangeFilter(vs, null, Long.toString(Math.abs(cmd.getVersion())), true, true);
FunctionRangeQuery range = new FunctionRangeQuery(filt);
bq.add(range, Occur.MUST);
- q = bq;
+ q = bq.build();
}
return q;
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java Thu Jun 18 07:14:05 2015
@@ -590,10 +590,10 @@ public class SolrPluginUtils {
* as clauses to just make them all "required"
* </p>
*/
- public static void setMinShouldMatch(BooleanQuery q, String spec) {
+ public static void setMinShouldMatch(BooleanQuery.Builder q, String spec) {
int optionalClauses = 0;
- for (BooleanClause c : q.clauses()) {
+ for (BooleanClause c : q.build().clauses()) {
if (c.getOccur() == Occur.SHOULD) {
optionalClauses++;
}
@@ -605,6 +605,16 @@ public class SolrPluginUtils {
}
}
+ public static BooleanQuery setMinShouldMatch(BooleanQuery q, String spec) {
+ BooleanQuery.Builder builder = new BooleanQuery.Builder();
+ builder.setDisableCoord(q.isCoordDisabled());
+ for (BooleanClause clause : q) {
+ builder.add(clause);
+ }
+ setMinShouldMatch(builder, spec);
+ return builder.build();
+ }
+
// private static Pattern spaceAroundLessThanPattern = Pattern.compile("\\s*<\\s*");
private static Pattern spaceAroundLessThanPattern = Pattern.compile("(\\s+<\\s*)|(\\s*<\\s+)");
private static Pattern spacePattern = Pattern.compile(" ");
@@ -664,7 +674,7 @@ public class SolrPluginUtils {
* so do not attempt to reuse it.
* </p>
*/
- public static void flattenBooleanQuery(BooleanQuery to, BooleanQuery from) {
+ public static void flattenBooleanQuery(BooleanQuery.Builder to, BooleanQuery from) {
for (BooleanClause clause : from.clauses()) {
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/QueryResultKeyTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/QueryResultKeyTest.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/QueryResultKeyTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/QueryResultKeyTest.java Thu Jun 18 07:14:05 2015
@@ -40,16 +40,16 @@ public class QueryResultKeyTest extends
// of filters is in a different order
Sort sort = new Sort(new SortField("test", SortField.Type.INT));
- BooleanQuery query = new BooleanQuery();
+ BooleanQuery.Builder query = new BooleanQuery.Builder();
query.add(new TermQuery(new Term("test", "field")), Occur.MUST);
List<Query> filters = Arrays.<Query>asList(new TermQuery(new Term("test", "field")),
new TermQuery(new Term("test2", "field2")));
- QueryResultKey qrk1 = new QueryResultKey(query , filters, sort, 1);
+ QueryResultKey qrk1 = new QueryResultKey(query.build() , filters, sort, 1);
List<Query> filters2 = Arrays.<Query>asList(new TermQuery(new Term("test2", "field2")),
new TermQuery(new Term("test", "field")));
- QueryResultKey qrk2 = new QueryResultKey(query , filters2, sort, 1);
+ QueryResultKey qrk2 = new QueryResultKey(query.build() , filters2, sort, 1);
assertKeyEquals(qrk1, qrk2);
}
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/PolyFieldTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/PolyFieldTest.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/PolyFieldTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/PolyFieldTest.java Thu Jun 18 07:14:05 2015
@@ -176,8 +176,7 @@ public class PolyFieldTest extends SolrT
assertTrue(q instanceof BooleanQuery);
//should have two clauses, one for 35.0 and the other for -79.34
BooleanQuery bq = (BooleanQuery) q;
- BooleanClause[] clauses = bq.getClauses();
- assertEquals(clauses.length, 2);
+ assertEquals(2, bq.clauses().size());
clearIndex();
}
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java Thu Jun 18 07:14:05 2015
@@ -1081,7 +1081,7 @@ public class TestExtendedDismaxParser ex
}
private boolean containsClause(BooleanQuery query, String field, String value, int boost, boolean fuzzy) {
- for(BooleanClause clause:query.getClauses()) {
+ for(BooleanClause clause:query) {
if(containsClause(clause.getQuery(), field, value, boost, fuzzy)) {
return true;
}
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestMaxScoreQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestMaxScoreQueryParser.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestMaxScoreQueryParser.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestMaxScoreQueryParser.java Thu Jun 18 07:14:05 2015
@@ -108,9 +108,9 @@ public class TestMaxScoreQueryParser ext
assertEquals(2, clauses.length);
assertTrue(clauses[0].getQuery() instanceof DisjunctionMaxQuery);
DisjunctionMaxQuery dmq = ((DisjunctionMaxQuery) clauses[0].getQuery());
- float fooClause = ((BooleanQuery)dmq.getDisjuncts().get(0)).clauses().get(0).getQuery().getBoost();
+ float fooClause = ((BooleanQuery)dmq.getDisjuncts().get(0)).clauses().iterator().next().getQuery().getBoost();
assertEquals(5.0, fooClause, 1e-15);
- float barClause = ((BooleanQuery)dmq.getDisjuncts().get(1)).clauses().get(0).getQuery().getBoost();
+ float barClause = ((BooleanQuery)dmq.getDisjuncts().get(1)).clauses().iterator().next().getQuery().getBoost();
assertEquals(6.0, barClause, 1e-15);
assertEquals(7.0, clauses[1].getQuery().getBoost(), 1e-15);
assertEquals(1.0, q.getBoost(), 1e-15);
@@ -121,9 +121,9 @@ public class TestMaxScoreQueryParser ext
assertEquals(1, clauses.length);
assertTrue(clauses[0].getQuery() instanceof DisjunctionMaxQuery);
dmq = ((DisjunctionMaxQuery) clauses[0].getQuery());
- fooClause = ((BooleanQuery)dmq.getDisjuncts().get(0)).clauses().get(0).getQuery().getBoost();
+ fooClause = ((BooleanQuery)dmq.getDisjuncts().get(0)).clauses().iterator().next().getQuery().getBoost();
assertEquals(2.0, fooClause, 1e-15);
- barClause = ((BooleanQuery)dmq.getDisjuncts().get(1)).clauses().get(0).getQuery().getBoost();
+ barClause = ((BooleanQuery)dmq.getDisjuncts().get(1)).clauses().iterator().next().getQuery().getBoost();
assertEquals(1.0, barClause, 1e-15);
assertEquals(3.0, q.getBoost(), 1e-15);
}
@@ -148,6 +148,6 @@ public class TestMaxScoreQueryParser ext
}
private BooleanClause[] clauses(Query q) {
- return ((BooleanQuery) q).getClauses();
+ return ((BooleanQuery) q).clauses().toArray(new BooleanClause[0]);
}
}
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestQueryUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestQueryUtils.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestQueryUtils.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestQueryUtils.java Thu Jun 18 07:14:05 2015
@@ -26,6 +26,7 @@ import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.util.AbstractSolrTestCase;
import org.junit.BeforeClass;
+import java.util.Collection;
import java.util.List;
/**
@@ -51,7 +52,7 @@ public class TestQueryUtils extends Abst
public void positive(Query q) {
assertFalse(QueryUtils.isNegative(q));
assertTrue(QueryUtils.getAbs(q)==q);
- List<BooleanClause> clauses = (q instanceof BooleanQuery) ? ((BooleanQuery)q).clauses() : null;
+ Collection<BooleanClause> clauses = (q instanceof BooleanQuery) ? ((BooleanQuery)q).clauses() : null;
if (clauses != null) {
if (clauses.size() != 0) {
assertTrue(QueryUtils.makeQueryable(q)==q);
@@ -74,21 +75,21 @@ public class TestQueryUtils extends Abst
public void testNegativeQueries() {
TermQuery tq = new TermQuery(new Term("hi","there"));
TermQuery tq2 = new TermQuery(new Term("wow","dude"));
- BooleanQuery bq = new BooleanQuery();
+ BooleanQuery.Builder bq = new BooleanQuery.Builder();
positive(tq);
// positive(bq);
bq.add(tq, BooleanClause.Occur.SHOULD);
- positive(bq);
+ positive(bq.build());
bq.add(tq2, BooleanClause.Occur.MUST_NOT);
- positive(bq);
+ positive(bq.build());
- bq = new BooleanQuery();
+ bq = new BooleanQuery.Builder();
bq.add(tq,BooleanClause.Occur.MUST_NOT);
- negative(bq);
+ negative(bq.build());
bq.add(tq2,BooleanClause.Occur.MUST_NOT);
- negative(bq);
+ negative(bq.build());
String f = "name"; // name is whitespace tokenized
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestSearchPerf.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestSearchPerf.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestSearchPerf.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestSearchPerf.java Thu Jun 18 07:14:05 2015
@@ -190,10 +190,10 @@ public class TestSearchPerf extends Abst
createIndex(49999);
doSetGen(10000, new TermQuery(new Term("foo1_s",t(0))) );
- BooleanQuery bq = new BooleanQuery();
+ BooleanQuery.Builder bq = new BooleanQuery.Builder();
bq.add(new TermQuery(new Term("foo2_s",t(0))), BooleanClause.Occur.SHOULD);
bq.add(new TermQuery(new Term("foo2_s",t(1))), BooleanClause.Occur.SHOULD);
- doSetGen(5000, bq);
+ doSetGen(5000, bq.build());
}
/** test range query performance */
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/util/SolrPluginUtilsTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/util/SolrPluginUtilsTest.java?rev=1686145&r1=1686144&r2=1686145&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/util/SolrPluginUtilsTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/util/SolrPluginUtilsTest.java Thu Jun 18 07:14:05 2015
@@ -25,7 +25,6 @@ import org.apache.solr.search.SolrIndexS
import org.apache.solr.search.DocList;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
-
import org.apache.lucene.index.Term;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TermQuery;
@@ -38,6 +37,7 @@ import org.apache.lucene.search.BooleanC
import org.junit.BeforeClass;
import org.junit.Test;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
@@ -257,7 +257,7 @@ public class SolrPluginUtilsTest extends
out instanceof BooleanQuery);
{
BooleanQuery bq = (BooleanQuery)out;
- List<BooleanClause> clauses = bq.clauses();
+ List<BooleanClause> clauses = new ArrayList<>(bq.clauses());
assertEquals(t+" wrong number of clauses", 2,
clauses.size());
Query sub = clauses.get(0).getQuery();
@@ -280,7 +280,7 @@ public class SolrPluginUtilsTest extends
out instanceof BooleanQuery);
{
BooleanQuery bq = (BooleanQuery)out;
- List<BooleanClause> clauses = bq.clauses();
+ List<BooleanClause> clauses = new ArrayList<>(bq.clauses());
assertEquals(t+" wrong number of clauses", 2,
clauses.size());
Query sub = clauses.get(0).getQuery();
@@ -364,29 +364,29 @@ public class SolrPluginUtilsTest extends
assertEquals(9, calcMSM(12, "3<-25% 10<-3"));
assertEquals(97, calcMSM(100, "3<-25% 10<-3"));
- BooleanQuery q = new BooleanQuery();
+ BooleanQuery.Builder q = new BooleanQuery.Builder();
q.add(new TermQuery(new Term("a","b")), Occur.SHOULD);
q.add(new TermQuery(new Term("a","c")), Occur.SHOULD);
q.add(new TermQuery(new Term("a","d")), Occur.SHOULD);
q.add(new TermQuery(new Term("a","d")), Occur.SHOULD);
SolrPluginUtils.setMinShouldMatch(q, "0");
- assertEquals(0, q.getMinimumNumberShouldMatch());
+ assertEquals(0, q.build().getMinimumNumberShouldMatch());
SolrPluginUtils.setMinShouldMatch(q, "1");
- assertEquals(1, q.getMinimumNumberShouldMatch());
+ assertEquals(1, q.build().getMinimumNumberShouldMatch());
SolrPluginUtils.setMinShouldMatch(q, "50%");
- assertEquals(2, q.getMinimumNumberShouldMatch());
+ assertEquals(2, q.build().getMinimumNumberShouldMatch());
SolrPluginUtils.setMinShouldMatch(q, "99");
- assertEquals(4, q.getMinimumNumberShouldMatch());
+ assertEquals(4, q.build().getMinimumNumberShouldMatch());
q.add(new TermQuery(new Term("a","e")), Occur.MUST);
q.add(new TermQuery(new Term("a","f")), Occur.MUST);
SolrPluginUtils.setMinShouldMatch(q, "50%");
- assertEquals(2, q.getMinimumNumberShouldMatch());
+ assertEquals(2, q.build().getMinimumNumberShouldMatch());
}