[ 
https://issues.apache.org/jira/browse/LUCENE-7416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15437246#comment-15437246
 ] 

Uwe Schindler edited comment on LUCENE-7416 at 8/25/16 5:09 PM:
----------------------------------------------------------------

bq. I'm not sure about these rules in particular, but I know some existing 
rules are useful, such as the one that rewrites to a CSQ around the filters 
when the single MUST clause is a MatchAllDocsQuery. I think one reason why this 
happens is that apps have a fixed filter and then a configurable query that 
depends on the user and that defaults to a MatchAllDocsQuery.

This was a huge issue for Solr where people used {{q=\*:\*}} as query and only 
applied filter claused ({{fq}}), the common case for faceted navigation without 
query.

Anyways, we can add another consition to the above set: If any MUST_NOT clause 
is a MatchAllDocs() we can return MatchNoDocs, too :-)


was (Author: thetaphi):
bq. I'm not sure about these rules in particular, but I know some existing 
rules are useful, such as the one that rewrites to a CSQ around the filters 
when the single MUST clause is a MatchAllDocsQuery. I think one reason why this 
happens is that apps have a fixed filter and then a configurable query that 
depends on the user and that defaults to a MatchAllDocsQuery.

This was a huge issue for Solr where people used {{q=*:*}} as query and only 
applied filter claused ({{fq}}), the common case for faceted navigation without 
query.

Anyways, we can add another consition to the above set: If any MUST_NOT clause 
is a MatchAllDocs() we can return MatchNoDocs, too :-)

> BooleanQuery rewrite optimizations
> ----------------------------------
>
>                 Key: LUCENE-7416
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7416
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: core/search
>    Affects Versions: master (7.0)
>            Reporter: Spyros Kapnissis
>            Priority: Minor
>             Fix For: master (7.0), 6.3
>
>         Attachments: LUCENE-7146-simplific1.patch, 
> LUCENE-7146-simplific1.patch, LUCENE-7146.patch
>
>
> A couple of BooleanQuery rewrites / optimizations. 
> First, as discussed on the user group, a BooleanQuery with a query that is 
> both a SHOULD and a FILTER can be rewritten as a single MUST query, but care 
> must be taken to decrement minShouldMatch by 1.
> Another case is if a query is both required (MUST or FILTER) and MUST_NOT at 
> the same time, it can be converted to a MatchNoDocsQuery (although I haven't 
> discussed this yet so hopefully I'm not missing something!).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to