SOLR-8251: APIs and user interfaces sometimes encourage to write BooleanQuery instances that are not optimal, for instance a typical case that happens often with Solr/Elasticsearch is to send a request that has a MatchAllDocsQuery as a query and some filter, which could be executed more efficiently by directly wrapping the filter into a ConstantScoreQuery.
Here are some ideas of rewrite operations that BooleanQuery could perform:
- remove FILTER clauses when they are also a MUST clause
- rewrite queries of the form "+: #filter" to a ConstantScoreQuery(filter)
- rewrite to a MatchNoDocsQuery when a clause that is a MUST or FILTER clause is also a MUST_NOT clause