lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kai Chan (JIRA)" <>
Subject [jira] [Updated] (LUCENE-5315) Some subclasses of Scorer do not honor the contract of DocsEnum.freq()
Date Tue, 29 Oct 2013 23:07:25 GMT


Kai Chan updated LUCENE-5315:


Here is the output of DisjunctionMaxQueryTest. For the freq() method, the return values (3,
4, 5) from TermScorer are term frequencies, while the return values (1, 2) from ConjunctionScorer
and others are clause counts.

> Some subclasses of Scorer do not honor the contract of DocsEnum.freq()
> ----------------------------------------------------------------------
>                 Key: LUCENE-5315
>                 URL:
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/query/scoring
>    Affects Versions: 4.5.1
>            Reporter: Kai Chan
>         Attachments:,
> The behavior of Scorer.freq() is inconsistent across its subclasses:
> * For TermScorer, the freq() method behaves just as DocsEnum.freq() specifies, i.e. the
method returns the "term frequency in the current document".
> * For BooleanScorer2, ConjunctionScorer, DisjunctionMaxScorer, DisjunctionSumScorer,
and possibly other classes, the freq() method returns the number of clauses (in BooleanQuery
or DisjunctionMaxQuery) that match the current document.
> This difference makes the meaning of Scorer.freq()'s return value uncertain. To add to
the uncertainty, given a Query, there seems to be no way of knowing which behavior takes effect
(as that is not specified in the API reference) except by reading or running the code.
> This issue might be related to LUCENE-4514.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message