Affects Version/s: None
Fix Version/s: 5.1
Scorer currently has to implement a whole bunch of methods that are never called. The only method that Scorer uses in addition to the methods on DocIdSetIterator is freq(), and as currently implemented this means different things on different Scorers:
- TermScorer returns its underlying termfreq
- MinShouldMatchScorer returns how many of its subscorers are matching
PhraseScorer returns how many phrases it has found on a document
In addition, freq() is never actually called on TermScorer, and it's only used in explain() on the phrase scorers.
We should make Scorer extend DocIdSetIterator instead. In place of freq(), Scorer would have a coord() method that by default returns 1, and for boolean scorers returns how many subscorers are matching.