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 20:31:33 UTC

svn commit: r1061473 - in /lucene/dev/branches/branch_3x: ./ lucene/ solr/ solr/CHANGES.txt solr/src/java/org/apache/solr/request/SimpleFacets.java solr/src/test/org/apache/solr/request/SimpleFacetsTest.java

Author: yonik
Date: Thu Jan 20 19:31:33 2011
New Revision: 1061473

URL: http://svn.apache.org/viewvc?rev=1061473&view=rev
Log:
SOLR-2325: allow tagging and exclusion of many query for faceting

Modified:
    lucene/dev/branches/branch_3x/   (props changed)
    lucene/dev/branches/branch_3x/lucene/   (props changed)
    lucene/dev/branches/branch_3x/solr/   (props changed)
    lucene/dev/branches/branch_3x/solr/CHANGES.txt
    lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/request/SimpleFacets.java
    lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/request/SimpleFacetsTest.java

Modified: lucene/dev/branches/branch_3x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/CHANGES.txt?rev=1061473&r1=1061472&r2=1061473&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_3x/solr/CHANGES.txt Thu Jan 20 19:31:33 2011
@@ -244,6 +244,9 @@ New Features
 * SOLR-2188: Added "maxTokenLength" argument to the factories for ClassicTokenizer,
   StandardTokenizer, and UAX29URLEmailTokenizer. (Steven Rowe)
 
+* SOLR-2325: Allow tagging and exlcusion of main query for faceting. (yonik)
+
+
 Optimizations
 ----------------------
 

Modified: lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/request/SimpleFacets.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/request/SimpleFacets.java?rev=1061473&r1=1061472&r2=1061473&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/request/SimpleFacets.java (original)
+++ lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/request/SimpleFacets.java Thu Jan 20 19:31:33 2011
@@ -133,14 +133,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/branches/branch_3x/solr/src/test/org/apache/solr/request/SimpleFacetsTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/request/SimpleFacetsTest.java?rev=1061473&r1=1061472&r2=1061473&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/request/SimpleFacetsTest.java (original)
+++ lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/request/SimpleFacetsTest.java Thu Jan 20 19:31:33 2011
@@ -157,6 +157,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"