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 2016/08/26 07:11:10 UTC
lucene-solr:branch_6x: Revert "LUCENE-7416: Rewrite optimizations for
BooleanQuery."
Repository: lucene-solr
Updated Branches:
refs/heads/branch_6x 07ebc563f -> 35382a815
Revert "LUCENE-7416: Rewrite optimizations for BooleanQuery."
This reverts commit 1ac9609caedbf739379bdabdac909f77fee2f5c6.
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/35382a81
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/35382a81
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/35382a81
Branch: refs/heads/branch_6x
Commit: 35382a815566f8f64e7b26dd4c0ac1129d860887
Parents: 07ebc56
Author: Adrien Grand <jp...@gmail.com>
Authored: Fri Aug 26 09:09:58 2016 +0200
Committer: Adrien Grand <jp...@gmail.com>
Committed: Fri Aug 26 09:10:22 2016 +0200
----------------------------------------------------------------------
lucene/CHANGES.txt | 7 +----
.../org/apache/lucene/search/BooleanQuery.java | 29 -------------------
.../lucene/search/TestBooleanRewrites.java | 30 --------------------
3 files changed, 1 insertion(+), 65 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/35382a81/lucene/CHANGES.txt
----------------------------------------------------------------------
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 70092e1..5e5c955 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -4,12 +4,7 @@ For more information on past and future Lucene versions, please see:
http://s.apache.org/luceneversions
======================= Lucene 6.3.0 =======================
-
-Optimizations
-
-* LUCENE-7416: BooleanQuery optimizes queries that have queries that occur both
- in the sets of SHOULD and FILTER clauses, or both in MUST/FILTER and MUST_NOT
- clauses. (Spyros Kapnissis via Adrien Grand)
+(No Changes)
======================= Lucene 6.2.0 =======================
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/35382a81/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java b/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java
index ec8e52c..d6a53bd 100644
--- a/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java
+++ b/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java
@@ -318,35 +318,6 @@ public class BooleanQuery extends Query implements Iterable<BooleanClause> {
}
}
- // convert FILTER clauses that are also SHOULD clauses to MUST clauses
- if (clauseSets.get(Occur.SHOULD).size() > 0 && clauseSets.get(Occur.FILTER).size() > 0) {
- final Collection<Query> filters = clauseSets.get(Occur.FILTER);
- final Collection<Query> shoulds = clauseSets.get(Occur.SHOULD);
-
- Set<Query> intersection = new HashSet<>(filters);
- intersection.retainAll(shoulds);
-
- if (intersection.isEmpty() == false) {
- BooleanQuery.Builder builder = new BooleanQuery.Builder();
- int minShouldMatch = getMinimumNumberShouldMatch();
-
- for (BooleanClause clause : clauses) {
- if (intersection.contains(clause.getQuery())) {
- if (clause.getOccur() == Occur.SHOULD) {
- builder.add(new BooleanClause(clause.getQuery(), Occur.MUST));
- minShouldMatch--;
- }
- } else {
- builder.add(clause);
- }
- }
-
- builder.setMinimumNumberShouldMatch(Math.max(0, minShouldMatch));
- return builder.build();
- }
- }
-
-
// Rewrite queries whose single scoring clause is a MUST clause on a
// MatchAllDocsQuery to a ConstantScoreQuery
{
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/35382a81/lucene/core/src/test/org/apache/lucene/search/TestBooleanRewrites.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestBooleanRewrites.java b/lucene/core/src/test/org/apache/lucene/search/TestBooleanRewrites.java
index c928653..fd54640 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestBooleanRewrites.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestBooleanRewrites.java
@@ -215,36 +215,6 @@ public class TestBooleanRewrites extends LuceneTestCase {
.build();
assertEquals(expected, searcher.rewrite(bq));
}
-
- // Duplicate Should and Filter query is converted to Must (with minShouldMatch -1)
- public void testConvertShouldAndFilterToMust() throws IOException {
- IndexSearcher searcher = newSearcher(new MultiReader());
-
- // no minShouldMatch
- BooleanQuery bq = new BooleanQuery.Builder()
- .add(new TermQuery(new Term("foo", "bar")), Occur.SHOULD)
- .add(new TermQuery(new Term("foo", "bar")), Occur.FILTER)
- .build();
- assertEquals(new TermQuery(new Term("foo", "bar")), searcher.rewrite(bq));
-
-
- // minShouldMatch is set to -1
- bq = new BooleanQuery.Builder()
- .add(new TermQuery(new Term("foo", "bar")), Occur.SHOULD)
- .add(new TermQuery(new Term("foo", "bar")), Occur.FILTER)
- .add(new TermQuery(new Term("foo", "baz")), Occur.SHOULD)
- .add(new TermQuery(new Term("foo", "quz")), Occur.SHOULD)
- .setMinimumNumberShouldMatch(2)
- .build();
-
- BooleanQuery expected = new BooleanQuery.Builder()
- .add(new TermQuery(new Term("foo", "bar")), Occur.MUST)
- .add(new TermQuery(new Term("foo", "baz")), Occur.SHOULD)
- .add(new TermQuery(new Term("foo", "quz")), Occur.SHOULD)
- .setMinimumNumberShouldMatch(1)
- .build();
- assertEquals(expected, searcher.rewrite(bq));
- }
public void testRemoveMatchAllFilter() throws IOException {
IndexSearcher searcher = newSearcher(new MultiReader());