Grokbase Groups Lucene dev June 2016
[ ]

Michael McCandless updated LUCENE-7337:
     Attachment: LUCENE-7337.patch

OK, here's a patch, giving {{MatchNoDocsQuery}} its own {{Weight}}
that returns 0 for {{queryNorm}}, and fixing an empty {{BooleanQuery}}
to rewrite to it.

Scoring wise, this behaves the same as an empty-clause boolean query,
and I think this will make LUCENE-7276 much easier!

bq. It can also happen when multiple indices are requested (Solr/ElasticSearch case).

I think getting proper distributed queries working is really out of
scope here: that would really require a distributed rewrite to work

I think this patch is a good baby-step.

MultiTermQuery are sometimes rewritten into an empty boolean query

Key: LUCENE-7337
Project: Lucene - Core
Issue Type: Bug
Components: core/search
Reporter: Ferenczi Jim
Priority: Minor
Attachments: LUCENE-7337.patch

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

To unsubscribe, e-mail:
For additional commands, e-mail:

Search Discussions

Discussion Posts


Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 6 of 6 | next ›
Discussion Overview
groupdev @
postedJun 13, '16 at 4:00p
activeJun 18, '16 at 10:00a

1 user in discussion

Michael McCandless (JIRA): 6 posts



site design / logo © 2022 Grokbase