Hi Shai, I think you don't have to subclass ScoreDoc. Can't you simply implement a Comparator and pass it in the data structure you need?
E. g.: Arrays.sort(scoreDocs, new Comparator() { public int compare(Object o1, Object o2) { ScoreDoc d1 = (ScoreDoc) o1; ScoreDoc d2 = (ScoreDoc) o2; if (d1.score == d2.score) { return d1.doc - d2.doc; } return d1.score - d2.score < 0 ? -1 : 1; } }); -Michael Shai Erera wrote: > Hi > > Today ScoreDoc is not Comparable. That prevents applications that would like > to use it in Comparable data structures (such as priority queues), but still > use other Lucene's objects, like TopDocs, unless they create a > ComparableScoreDoc which extends ScoreDoc and implements Comparable. To make > ScoreDoc Comparable requires very minor changes: > - Add implements Comparable > - Add: > public int compareTo(Object o) { > ScoreDoc oScoreDoc = (ScoreDoc) o; > float oScore = oScoreDoc.score; > if (score == oScore) { > return doc - oScoreDoc.doc; > } > return score - oScore < 0 ? -1 : 1; > } > > If you agree to do it, I'm willing to open an issue and provide a patch. It > shouldn't affect any current Lucene implementations. > > Thanks, > > Shai Erera > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]