Rus,

Yes - the sorting custom comparator was only set up to use Comparable.compareTo() - it can't really compare native types using < or >.

I think your best bet might be to encode your dates at index time into integers and put those in the index (assuming you really need Dates and not Timestamps). Then the field will automatically sort as an int. You could also store a user-readable date in a separate field if you wanted.

I suppose the classes could be extended to sort by longs, but for dates you shouldn't need that much precision, right?

Tim


I was wondering if there is a date sort implementation which is more
efficient than just sorting dates as encoded Strings or as custom
Comparable objects. If there isn't I have quickly built one based upon
Tim's SortComparatorSource interface. I would be glad to share it if
there is enough interest. Bascially, using an custom implementation of
SortComparatorSource (DateSortComparator) for value comparison,
String-encoded Date values are decoded to "long" values using the
method "stringToTime" from either the DateField or DateTools class and
stored into a DecodedLongFieldCacheImpl.  The only thing I don't
understand is the the association of the SortField.CUSTOM type to any
SortComparatorSource passed into the SortField Constructor "public
SortField (String field, SortComparatorSource comparator)". It seems
like the SortField.CUSTOM "type" handling in the "switch" statements
of FieldDocSortedHitQueue.lessThan() method  are incongruent with the
idea that a low-level custom SortComparatorSource can be created which
does native type comparisons rather can using the generic
Comparable.compareTo(Object).

Regards,
Rus


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to