Нестандартная сортировка, сортируем по дате, но разбавляем по пользователям

SELECT user, yearFROMindexnews WHERE MATCH('@title \"NEWS\"/0.2') ORDER by year desc

user         year
aleks        2025
flex         2024
flex         2024 
flex         2023
name         2023
name         2021
name         2020
name         2021
name         2021

Выбрали записи из таблицы, сортировка по году, дате публикации от большего к меньшему.

Как выполнить так, чтобы получить

user         year
aleks        2025
flex         2024
name         2023   // Вставили более раннею запись, поскольку в последующая запись была от пользователя  flex
flex         2024   // Иначе была бы за flex данная строка
name         2021   // Тоже выхватили более старую запись
flex         2023   
name         2020  // Последующие записи оставили как есть, пользователи повторяются, поскольку более ранних публикаций от других пользователей нету.
name         2021
name         2021

Сортировку оставили прежнюю, но выполнили так, чтобы последующая строка не повторялась по пользователю.

Возможно, это можно сделать через кастомный ранкер и подмес атрибутов в вес. Пример:

mysql> drop table if exists t; create table t(a int, f text); insert into t(id,a,f) values(1,1,'a'),(2,2,'a'); select *, weight() from t where match('a') option ranker=expr('a+bm25');
--------------
drop table if exists t
--------------

Query OK, 0 rows affected (0.00 sec)

--------------
create table t(a int, f text)
--------------

Query OK, 0 rows affected (0.00 sec)

--------------
insert into t(id,a,f) values(1,1,'a'),(2,2,'a')
--------------

Query OK, 2 rows affected (0.00 sec)

--------------
select *, weight() from t where match('a') option ranker=expr('a+bm25')
--------------

+------+------+------+----------+
| id   | f    | a    | weight() |
+------+------+------+----------+
|    2 | a    |    2 |      358 |
|    1 | a    |    1 |      357 |
+------+------+------+----------+
2 rows in set (0.00 sec)
--- 2 out of 2 results in 0ms ---