You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mv...@apache.org on 2016/04/11 09:26:55 UTC

[2/3] lucene-solr:branch_6x: LUCENE-7187: Block join queries' Weight#extractTerms(...) implementations should delegate to the wrapped weight.

LUCENE-7187: Block join queries' Weight#extractTerms(...) implementations should delegate to the wrapped weight.


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/f18cb901
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/f18cb901
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/f18cb901

Branch: refs/heads/branch_6x
Commit: f18cb90104a0e55f91ce75d726cb489eb5cbf258
Parents: 70ab80b
Author: Martijn van Groningen <mv...@apache.org>
Authored: Mon Apr 11 09:20:39 2016 +0200
Committer: Martijn van Groningen <mv...@apache.org>
Committed: Mon Apr 11 09:22:20 2016 +0200

----------------------------------------------------------------------
 lucene/CHANGES.txt                              |  3 ++
 .../search/join/ToChildBlockJoinQuery.java      |  4 ++-
 .../search/join/ToParentBlockJoinQuery.java     |  6 ++--
 .../lucene/search/join/TestBlockJoin.java       | 32 +++++++++++++++++++-
 4 files changed, 40 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f18cb901/lucene/CHANGES.txt
----------------------------------------------------------------------
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index f28254d..63a3225 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -66,6 +66,9 @@ Bug Fixes
 * LUCENE-7168: Switch to stable encode for geo3d, remove quantization
   test leniency, remove dead code (Mike McCandless)
 
+* LUCENE-7187: Block join queries' Weight#extractTerms(...) implementations
+  should delegate to the wrapped weight. (Martijn van Groningen)
+
 Other
 
 * LUCENE-7174: Upgrade randomizedtesting to 2.3.4. (Uwe Schindler, Dawid Weiss)

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f18cb901/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java
----------------------------------------------------------------------
diff --git a/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java b/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java
index d381cae..237b786 100644
--- a/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java
+++ b/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java
@@ -103,7 +103,9 @@ public class ToChildBlockJoinQuery extends Query {
     }
 
     @Override
-    public void extractTerms(Set<Term> terms) {}
+    public void extractTerms(Set<Term> terms) {
+      parentWeight.extractTerms(terms);
+    }
 
     @Override
     public float getValueForNormalization() throws IOException {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f18cb901/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java
----------------------------------------------------------------------
diff --git a/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java b/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java
index f004fde..2a0ebaf 100644
--- a/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java
+++ b/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java
@@ -125,21 +125,21 @@ public class ToParentBlockJoinQuery extends Query {
   }
 
   private static class BlockJoinWeight extends Weight {
-    private final Query joinQuery;
     private final Weight childWeight;
     private final BitSetProducer parentsFilter;
     private final ScoreMode scoreMode;
 
     public BlockJoinWeight(Query joinQuery, Weight childWeight, BitSetProducer parentsFilter, ScoreMode scoreMode) {
       super(joinQuery);
-      this.joinQuery = joinQuery;
       this.childWeight = childWeight;
       this.parentsFilter = parentsFilter;
       this.scoreMode = scoreMode;
     }
 
     @Override
-    public void extractTerms(Set<Term> terms) {}
+    public void extractTerms(Set<Term> terms) {
+      childWeight.extractTerms(terms);
+    }
 
     @Override
     public float getValueForNormalization() throws IOException {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f18cb901/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java
----------------------------------------------------------------------
diff --git a/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java b/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java
index 01a8135..a67b0ec 100644
--- a/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java
+++ b/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java
@@ -20,8 +20,10 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
+import java.util.Set;
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
@@ -101,7 +103,35 @@ public class TestBlockJoin extends LuceneTestCase {
     job.add(new IntPoint("year", year));
     return job;
   }
-  
+
+  public void testExtractTerms() throws Exception {
+    TermQuery termQuery = new TermQuery(new Term("field", "value"));
+    QueryBitSetProducer bitSetProducer = new QueryBitSetProducer(new MatchNoDocsQuery());
+    ToParentBlockJoinQuery toParentBlockJoinQuery = new ToParentBlockJoinQuery(termQuery, bitSetProducer, ScoreMode.None);
+    ToChildBlockJoinQuery toChildBlockJoinQuery = new ToChildBlockJoinQuery(toParentBlockJoinQuery, bitSetProducer);
+
+    Directory directory = newDirectory();
+    final IndexWriter w = new IndexWriter(directory, new IndexWriterConfig(new MockAnalyzer(random())));
+    w.close();
+    IndexReader indexReader = DirectoryReader.open(directory);
+    IndexSearcher indexSearcher = new IndexSearcher(indexReader);
+
+    Weight weight = toParentBlockJoinQuery.createWeight(indexSearcher, false);
+    Set<Term> terms = new HashSet<>();
+    weight.extractTerms(terms);
+    Term[] termArr =terms.toArray(new Term[0]);
+    assertEquals(1, termArr.length);
+
+    weight = toChildBlockJoinQuery.createWeight(indexSearcher, false);
+    terms = new HashSet<>();
+    weight.extractTerms(terms);
+    termArr =terms.toArray(new Term[0]);
+    assertEquals(1, termArr.length);
+
+    indexReader.close();
+    directory.close();
+  }
+
   public void testEmptyChildFilter() throws Exception {
     final Directory dir = newDirectory();
     final IndexWriterConfig config = new IndexWriterConfig(new MockAnalyzer(random()));