On Sat, Mar 21, 2009, Michael McCandless wrote about "Re: Is TopDocCollector's 
collect() implementation correct?":
> 
> I think I'd lean towards a third solution: tighten up
> TopScoreDocCollector (make it final, remove ability to change its PQ,
> make things private) and have it focus on high performance collection
> by score.

The problem I see is this: TopDocCollector currently does not implement
any sort of interface for reading its output. This means that if you create
a completely different class implementing, for example, a different
sorting criteria (e.g., sort by date), there will be no base class or
interface that you could use for both of them, to allow changing the sort
criterion easily at run time. On the other hand, with the existing collector,
you can subclass TopDocCollector, and use that as the common base class.

If we're already creating a new TopScoreDocCollector (when was it added?
I must have been dozing off while this happened...) perhaps we can create
a read interface for it (with the getTotalHits() and topDocs() methods), and
have this class implement that interface? Then, indeed, nobody will have
any reason to extend the TopScoreDocCollector class, and it can be final.


-- 
Nadav Har'El                        |        Sunday, Mar 22 2009, 26 Adar 5769
IBM Haifa Research Lab              |-----------------------------------------
                                    |"Did you sleep well?" "No, I made a
http://nadav.harel.org.il           |couple of mistakes."

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to