[
https://issues.apache.org/jira/browse/LUCENE-3328?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13069479#comment-13069479
]
Simon Willnauer commented on LUCENE-3328:
-----------------------------------------
{quote}
2) after a hit was found
3) whenever a doc matched m out of n enums, 1 < m < n
{quote}
maybe I miss something here but really how can we know how many docs are left
in an enum during 2. and 3. We could use the doc an enum has advanced to in 3.
to also advance the leader but as I said in a comment above I am still afraid
of the advance call since it can give a serious perf hit if docs are close
together.
> 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: 4.0
>
> Attachments: LUCENE-3328.patch, 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: [email protected]
For additional commands, e-mail: [email protected]