[ 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