[ https://issues.apache.org/jira/browse/LUCENE-7337?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15328362#comment-15328362 ]
Michael McCandless commented on LUCENE-7337: -------------------------------------------- bq. A simple fix would be to replace the empty boolean query produced by the multi term query with a MatchNoDocsQuery but I am not sure that it's the best way to fix. +1 Or more generally can we have an empty-clause BQ rewrite to {{MatchNoDocsQuery}}? I had folded this into my attempt to fix the world's-hardest-toString-issue (LUCENE-7276) but it was too many changes to try at once, so breaking it out here is great. However, before we can do this, we need to fix {{MatchNoDocsQuery}} to not rewrite to an empty BQ else we get a never-terminating rewrite ;) > MultiTermQuery are sometimes rewritten into an empty boolean query > ------------------------------------------------------------------ > > Key: LUCENE-7337 > URL: https://issues.apache.org/jira/browse/LUCENE-7337 > Project: Lucene - Core > Issue Type: Bug > Components: core/search > Reporter: Ferenczi Jim > Priority: Minor > > MultiTermQuery are sometimes rewritten to an empty boolean query (depending > on the rewrite method), it can happen when no expansions are found on a fuzzy > query for instance. > It can be problematic when the multi term query is boosted. > For instance consider the following query: > `((title:bar~1)^100 text:bar)` > This is a boolean query with two optional clauses. The first one is a fuzzy > query on the field title with a boost of 100. > If there is no expansion for "title:bar~1" the query is rewritten into: > `(()^100 text:bar)` > ... and when expansions are found: > `((title:bars | title:bar)^100 text:bar)` > The scoring of those two queries will differ because the normalization factor > and the norm for the first query will be equal to 1 (the boost is ignored > because the empty boolean query is not taken into account for the computation > of the normalization factor) whereas the second query will have a > normalization factor of 10,000 (100*100) and a norm equal to 0.01. > This kind of discrepancy can happen in a single index because the expansions > for the fuzzy query are done at the segment level. It can also happen when > multiple indices are requested (Solr/ElasticSearch case). > A simple fix would be to replace the empty boolean query produced by the > multi term query with a MatchNoDocsQuery but I am not sure that it's the best > way to fix. WDYT ? > -- 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