You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sa...@apache.org on 2016/06/15 21:11:12 UTC
[1/2] lucene-solr:branch_5_5: LUCENE-7187: Block join queries'
Weight#extractTerms(...) implementations should delegate to the wrapped
weight.
Repository: lucene-solr
Updated Branches:
refs/heads/branch_5_5 bdab648a4 -> 93fcdec81
refs/heads/branch_5x d3a9d03c2 -> 1c8807713
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/93fcdec8
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/93fcdec8
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/93fcdec8
Branch: refs/heads/branch_5_5
Commit: 93fcdec815e5f22572b34c798ad19c21872daad8
Parents: bdab648
Author: Martijn van Groningen <mv...@apache.org>
Authored: Mon Apr 11 09:20:39 2016 +0200
Committer: Steve Rowe <sa...@apache.org>
Committed: Wed Jun 15 17:05:56 2016 -0400
----------------------------------------------------------------------
lucene/CHANGES.txt | 12 +++++---
.../search/join/ToChildBlockJoinQuery.java | 4 ++-
.../search/join/ToParentBlockJoinQuery.java | 6 ++--
.../lucene/search/join/TestBlockJoin.java | 32 +++++++++++++++++++-
4 files changed, 45 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/93fcdec8/lucene/CHANGES.txt
----------------------------------------------------------------------
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 5ad0418..e168e59 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -4,7 +4,11 @@ For more information on past and future Lucene versions, please see:
http://s.apache.org/luceneversions
======================= Lucene 5.5.2 =======================
-(No Changes)
+
+Bug Fixes
+
+* LUCENE-7187: Block join queries' Weight#extractTerms(...) implementations
+ should delegate to the wrapped weight. (Martijn van Groningen)
======================= Lucene 5.5.1 =======================
@@ -251,11 +255,11 @@ Bug Fixes
New Features
* LUCENE-6747: FingerprintFilter is a TokenFilter that outputs a single
- token which is a concatenation of the sorted and de-duplicated set of
- input tokens. Useful for normalizing short text in clustering/linking
+ token which is a concatenation of the sorted and de-duplicated set of
+ input tokens. Useful for normalizing short text in clustering/linking
tasks. (Mark Harwood, Adrien Grand)
-* LUCENE-6875: New Serbian Filter. (Nikola Smolenski via Robert Muir,
+* LUCENE-6875: New Serbian Filter. (Nikola Smolenski via Robert Muir,
Dawid Weiss)
* LUCENE-6720: New FunctionRangeQuery wrapper around ValueSourceScorer
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/93fcdec8/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 9856421..7c75bf3 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/93fcdec8/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 65ec2fc..da3367f 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/93fcdec8/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 273248b..046bbbb 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;
@@ -108,7 +110,35 @@ public class TestBlockJoin extends LuceneTestCase {
job.add(new IntField("year", year, Field.Store.NO));
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()));
[2/2] lucene-solr:branch_5x: LUCENE-7187: Block join queries'
Weight#extractTerms(...) implementations should delegate to the wrapped
weight.
Posted by sa...@apache.org.
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/1c880771
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/1c880771
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/1c880771
Branch: refs/heads/branch_5x
Commit: 1c88077132cf04710b22aea150b5a002763ceb1c
Parents: d3a9d03
Author: Martijn van Groningen <mv...@apache.org>
Authored: Mon Apr 11 09:20:39 2016 +0200
Committer: Steve Rowe <sa...@apache.org>
Committed: Wed Jun 15 17:10:19 2016 -0400
----------------------------------------------------------------------
.../search/join/ToChildBlockJoinQuery.java | 4 ++-
.../search/join/ToParentBlockJoinQuery.java | 6 ++--
.../lucene/search/join/TestBlockJoin.java | 32 +++++++++++++++++++-
3 files changed, 37 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1c880771/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 9856421..7c75bf3 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/1c880771/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 65ec2fc..da3367f 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/1c880771/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 273248b..046bbbb 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;
@@ -108,7 +110,35 @@ public class TestBlockJoin extends LuceneTestCase {
job.add(new IntField("year", year, Field.Store.NO));
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()));