[ https://issues.apache.org/jira/browse/LUCENE-4236?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Muir updated LUCENE-4236: -------------------------------- Description: After LUCENE-3505, I want to do a slight cleanup: * compute the term conjunctions optimization in scorer(), so its applied even if we have optional and prohibited clauses that dont exist in the segment (e.g. return null) * use the term conjunctions optimization when optional.size() == minShouldMatch, as that means they are all mandatory, too. * don't return booleanscorer1 when optional.size() == minShouldMatch, because it means we have required clauses and in general BS2 should do a much better job (e.g. use advance). was: After LUCENE-3505, I want to do a slight cleanup: * compute the term conjunctions optimization in scorer(), so its applied even if we have optional and prohibited clauses that dont exist in the segment (e.g. return null) * use the term conjunctions optimization when optional.size() == minShouldMatch, as that means they are all mandatory, too. * don't return booleanscorer1 when optional.size() == minShouldMatch, because it means we have required clauses and in general BS2 should do a much better job (e.g. use advance). I have no idea if this is the problem in SOLR-3636. I removed reference to the SOLR issue, i thought for some reason it was a performance problem, but that was just faulty brain cells (its just some unrelated parsing bug). Still it seems like apps like Solr might be generating these disjunctions with minShouldmatch = optional.size() and we should handle them as conjunctions always. > clean up booleanquery conjunction optimizations a bit > ----------------------------------------------------- > > Key: LUCENE-4236 > URL: https://issues.apache.org/jira/browse/LUCENE-4236 > Project: Lucene - Java > Issue Type: Improvement > Reporter: Robert Muir > Fix For: 4.0, 5.0 > > Attachments: LUCENE-4236.patch, LUCENE-4236.patch > > > After LUCENE-3505, I want to do a slight cleanup: > * compute the term conjunctions optimization in scorer(), so its applied even > if we have optional and prohibited clauses that dont exist in the segment > (e.g. return null) > * use the term conjunctions optimization when optional.size() == > minShouldMatch, as that means they are all mandatory, too. > * don't return booleanscorer1 when optional.size() == minShouldMatch, because > it means we have required clauses and in general BS2 should do a much better > job (e.g. use advance). -- 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