[
https://issues.apache.org/jira/browse/LUCENE-7337?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15331466#comment-15331466
]
Michael McCandless commented on LUCENE-7337:
--------------------------------------------
Really, the max score that {{MatchNoDocsQuery}} can return is undefined right,
since it returns nothing. (i.e. max value over an empty set of elements is not
defined).
Maybe, instead of adding a new query that also matches no documents, we could
just enhance the existing one so you could pass it the norm factor you'd like
it to "use"?
I do really like your idea of having an empty clause BQ rewrite to
{{MatchNoDocsQuery}}: I think we should have one, unambiguous query class
that's used for this "matches nothing" rewrite case, if we can get the scoring
to work out correctly!
> 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: [email protected]
For additional commands, e-mail: [email protected]