[
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: [email protected]
For additional commands, e-mail: [email protected]