Интересный кейс. Я бы возможно вручную определил интервалы и давал по ним бусты.
Допустим:
новости за сегодня - буст = 10
новости за последнюю неделю - буст = 5
новости за последний месяц - буст = 3
новости за последний год - буст = 1
новости старше - буст = 0.2
При таком условии, наиболее точные совпадения, вероятнее всего всё равно будут выше, даже если они старше. Например, если текст названия полностью совпадает с новостью двухлетней давности.
Хотя, в данном случае надо смотреть ещё отдельно и тьюнить фильтры и метчеры, которые вы используете