[ 
https://issues.apache.org/jira/browse/SOLR-80?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12466612
 ] 

Mike Klaas commented on SOLR-80:
--------------------------------

I think this is due to the last line of this fragment of the patch:

   protected DocSet getDocSet(List<Query> queries) throws IOException {
+    if (queries==null) return null;
+    if (queries.size()==1) return getDocSet(queries.get(0));
     DocSet answer=null;
-    if (queries==null) return null;
-    for (Query q : queries) {
-      if (answer==null) {
-        answer = getDocSet(q);
+
+    boolean[] neg = new boolean[queries.size()];
+    DocSet[] sets = new DocSet[queries.size()];
+
+    int smallestIndex = -1;
+    int smallestCount = Integer.MAX_VALUE;
+    for (int i=0; i<sets.length; i++) {
+      Query q = queries.get(i);
+      Query posQuery = QueryUtils.getAbs(q);
+      sets[i] = getPositiveDocSet(posQuery);

getPositiveDocSet() caches all docsets returned, so both the query part and the 
filter part would be cached in the filterCache.

> negative filter queries
> -----------------------
>
>                 Key: SOLR-80
>                 URL: https://issues.apache.org/jira/browse/SOLR-80
>             Project: Solr
>          Issue Type: New Feature
>          Components: search
>            Reporter: Yonik Seeley
>         Attachments: negative_filters.patch, negative_filters.patch
>
>
> There is a need for negative filter queries to avoid long filter generation 
> times and large caching requirements.
> Currently, if someone wants to filter out a small number of documents, they 
> must specify the complete set of documents to express those negative 
> conditions against.  
> q=foo&fq=id:[* TO *] -id:101
> In this example, to filter out a single document, the complete set of 
> documents (minus one) is generated, and a large bitset is cached.  You could 
> also add the restriction to the main query, but that doesn't work with the 
> dismax handler which doesn't have a facility for this.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to