[ https://issues.apache.org/jira/browse/LUCENE-3328?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Muir updated LUCENE-3328: -------------------------------- Attachment: LUCENE-3328.patch here is the same thing, only as a scorer that booleanweight picks. this is much simpler imo: * no state-keeping of 'rewriteToConjunctionTermsQuery' in the Query * no hassles for any highlighters or anything doing instanceof * plays correct with booleanquery's rewrite: e.g. hoisting of single-clauses into termqueries. In general i think Query.rewrite should be reserved for simplifying Queries, this is not a simpler query, just a faster scorer :) > Specialize BooleanQuery if all clauses are TermQueries > ------------------------------------------------------ > > Key: LUCENE-3328 > URL: https://issues.apache.org/jira/browse/LUCENE-3328 > Project: Lucene - Java > Issue Type: Improvement > Components: core/search > Affects Versions: 3.4, 4.0 > Reporter: Simon Willnauer > Fix For: 3.4, 4.0 > > Attachments: LUCENE-3328.patch, LUCENE-3328.patch > > > During work on LUCENE-3319 I ran into issues with BooleanQuery compared to > PhraseQuery in the exact case. If I disable scoring on PhraseQuery and bypass > the position matching, essentially doing a conjunction match, > ExactPhraseScorer beats plain boolean scorer by 40% which is a sizeable gain. > I converted a ConjunctionScorer to use DocsEnum directly but still didn't get > all the 40% from PhraseQuery. Yet, it turned out with further optimizations > this gets very close to PhraseQuery. The biggest gain here came from > converting the hand crafted loop in ConjunctionScorer#doNext to a for loop > which seems to be less confusing to hotspot. In this particular case I think > code specialization makes lots of sense since BQ with TQ is by far one of the > most common queries. > I will upload a patch shortly -- This message is automatically generated by JIRA. 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