You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by yo...@apache.org on 2012/02/01 23:02:07 UTC
svn commit: r1239355 - in /lucene/dev/trunk/solr: CHANGES.txt
core/src/java/org/apache/solr/search/JoinQParserPlugin.java
core/src/test/org/apache/solr/TestJoin.java
Author: yonik
Date: Wed Feb 1 22:02:07 2012
New Revision: 1239355
URL: http://svn.apache.org/viewvc?rev=1239355&view=rev
Log:
SOLR-3062: join was ignoring acceptDocs
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/TestJoin.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1239355&r1=1239354&r2=1239355&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Wed Feb 1 22:02:07 2012
@@ -303,6 +303,9 @@ Bug Fixes
* SOLR-3037: When using binary format in solrj the codec screws up parameters
(Sami Siren via yonik)
+* SOLR-3062: A join in the main query was not respecting any filters pushed
+ down to it via acceptDocs since LUCENE-1536. (Mike Hugo, yonik)
+
Other Changes
----------------------
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java?rev=1239355&r1=1239354&r2=1239355&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java Wed Feb 1 22:02:07 2012
@@ -220,7 +220,8 @@ class JoinQuery extends Query {
filter = resultSet.getTopFilter();
}
- DocIdSet readerSet = filter.getDocIdSet(context, null); // this set only includes live docs
+ // Although this set only includes live docs, other filters can be pushed down to queries.
+ DocIdSet readerSet = filter.getDocIdSet(context, acceptDocs);
if (readerSet == null) readerSet=DocIdSet.EMPTY_DOCIDSET;
return new JoinScorer(this, readerSet.iterator(), getBoost());
}
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/TestJoin.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/TestJoin.java?rev=1239355&r1=1239354&r2=1239355&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/TestJoin.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/TestJoin.java Wed Feb 1 22:02:07 2012
@@ -128,6 +128,12 @@ public class TestJoin extends SolrTestCa
"debugQuery","true"),
davesDepartments);
+ // find people that develop stuff - but limit via filter query to a name of "john"
+ // this tests filters being pushed down to queries (SOLR-3062)
+ assertJQ(req("q","{!join from=dept_id_s to=dept_s}text:develop", "fl","id", "fq", "name:john")
+ ,"/response=={'numFound':1,'start':0,'docs':[{'id':'1'}]}"
+ );
+
}