I've been using a simple variation of the boost function given in the
examples used to boost more recent documents:

recip(rord(creationDate),1,1000,1000)^1.3

While it seems to work pretty well, I've realised that this may not be quite
as effective as i had hoped given that the calculation is based on the
ordinal of the field value rather than the value of the field itself.  In
cases where the field type is 'date' and the actual field values are not
distributed evenly across all documents in the index, the value returned by
rord() is not going to give a true reflection of document age.  For example,
using Hoss' new date faceting feature, I can see that the rate at which
documents have been added to the index I'm maintaining has been slowly but
steadily increasing over the past few months, and I fear this fact will skew
the boost value calculated by the function listed above.

There doesn't seem to be currently any way of performing date arithmetic or
convert a date field into an integer (seconds since epoch?), ideally I'd
like to be able to do something like:

recip(intval(parseDate('NOW')-parseDate(creationDate)),1,1000,1000)^1.3

so that the function calculates the boost based on the actual document age,
rather than the relative age.  Does anybody have any thoughts or comments on
this approach?

cheers,
Piete

Reply via email to