[ https://issues.apache.org/jira/browse/LUCENE-4300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Muir updated LUCENE-4300: -------------------------------- Attachment: LUCENE-4300.patch updated patch: I beefed up the random tests and also added 2 standalone tests (one for minNrShouldMatch == 1, the other for prohibited clauses). > BooleanQuery inconsistently applies coord() if it rewrites itself > ----------------------------------------------------------------- > > Key: LUCENE-4300 > URL: https://issues.apache.org/jira/browse/LUCENE-4300 > Project: Lucene - Core > Issue Type: Bug > Reporter: Robert Muir > Fix For: 5.0, 3.6.2, 4.0 > > Attachments: LUCENE-4300.patch, LUCENE-4300.patch, LUCENE-4300.patch > > > Tripped by the new random sim from LUCENE-4297: > The basics are this: > * BooleanQuery has the following rewrite(): > {code} > public Query rewrite(IndexReader reader) throws IOException { > if (minNrShouldMatch == 0 && clauses.size() == 1) { // > optimize 1-clause queries > {code} > * you have a coord() impl that doesnt return 1.0 if overlap == maxOverlap, > particularly: > {code} > return overlap / ((float)maxOverlap + 1); > {code} > * TestBooleanMinShouldMatch.testRandomQueries generates random boolean > queries (Q1), then compares the scores of the random query to the same query > but with minNrShouldmatch applied to its should clauses (Q2) > * in the case of a single term BQ, the rewrite applies to Q1, making it a > term query, but not to Q2. so the coord() only gets called for Q2, not Q1. > and with this crazy coord it means the scores are different. > I think the rewrite is wrong, we should also rewrite single-query BQs where > minNrShouldMatch = 1 and there is a single optional clause. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org