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 2011/01/20 18:58:23 UTC
svn commit: r1061424 - in /lucene/dev/trunk/solr: CHANGES.txt
src/java/org/apache/solr/request/SimpleFacets.java
src/test/org/apache/solr/request/SimpleFacetsTest.java
Author: yonik
Date: Thu Jan 20 17:58:23 2011
New Revision: 1061424
URL: http://svn.apache.org/viewvc?rev=1061424&view=rev
Log:
SOLR-2325: allow tagging and exclusion of many query for faceting
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/src/java/org/apache/solr/request/SimpleFacets.java
lucene/dev/trunk/solr/src/test/org/apache/solr/request/SimpleFacetsTest.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1061424&r1=1061423&r2=1061424&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Thu Jan 20 17:58:23 2011
@@ -106,6 +106,8 @@ New Features
Adding a parameter NOW=<time_in_ms> to the request will override the
current time. (Peter Sturge, yonik)
+* SOLR-2325: Allow tagging and exlcusion of main query for faceting. (yonik)
+
Optimizations
----------------------
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/request/SimpleFacets.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/request/SimpleFacets.java?rev=1061424&r1=1061423&r2=1061424&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/request/SimpleFacets.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/request/SimpleFacets.java Thu Jan 20 17:58:23 2011
@@ -147,14 +147,17 @@ public class SimpleFacets {
List<Query> qlist = new ArrayList<Query>();
// add the base query
- qlist.add(rb.getQuery());
+ if (!excludeSet.containsKey(rb.getQuery())) {
+ qlist.add(rb.getQuery());
+ }
// add the filters
- for (Query q : rb.getFilters()) {
- if (!excludeSet.containsKey(q)) {
- qlist.add(q);
+ if (rb.getFilters() != null) {
+ for (Query q : rb.getFilters()) {
+ if (!excludeSet.containsKey(q)) {
+ qlist.add(q);
+ }
}
-
}
// get the new base docset for this facet
Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/request/SimpleFacetsTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/request/SimpleFacetsTest.java?rev=1061424&r1=1061423&r2=1061424&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/request/SimpleFacetsTest.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/request/SimpleFacetsTest.java Thu Jan 20 17:58:23 2011
@@ -169,6 +169,16 @@ public class SimpleFacetsTest extends So
,"//lst[@name='trait_s']/int[@name='Pig'][.='1']"
);
+ // test excluding main query
+ assertQ(req("q", "{!tag=main}id:43"
+ ,"facet", "true"
+ ,"facet.query", "{!key=foo}id:42"
+ ,"facet.query", "{!ex=main key=bar}id:42" // only matches when we exclude main query
+ )
+ ,"//lst[@name='facet_queries']/int[@name='foo'][.='0']"
+ ,"//lst[@name='facet_queries']/int[@name='bar'][.='1']"
+ );
+
assertQ("check counts for applied facet queries using filtering (fq)",
req("q", "id:[42 TO 47]"
,"facet", "true"