[
https://issues.apache.org/jira/browse/SOLR-80?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12466611
]
Yonik Seeley commented on SOLR-80:
----------------------------------
You are seeing a MatchAllDocsQuery filter.
If getDocSet(List<Query>) is called with a single negative query, or
or getDocSet(Query, Filter) is called with a null filter and a negative query,
we call getDocSet(MatchAllDocsQuery)
to use as a base to andNot the passed query.
If you continue your example with fq=+memory and fq=-memory, you will see what
you expect (only one new filter).
> 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.