Ранжирование по статусу доставки

Всем привет.
Хотим сделать ранжирование товаров по статусу доставки. В индексе это int поле с тремя возможными значениями 1,2,3. 1 - в наличии, 2 - изготовление на заказ, 3 - нет в наличии.

Ищем варианты как организовать ранжирование с учётом релевантности и статуса доставки. Если мы просто сортируем сначала по статусу доставки, а потом по релевантности часто получаем не релевантную выдачу, да в наличии, но не релевантную. Думаем просто пессимизировать товары не в наличии, но как это сделать. Используем sql запросы. Я знаю про возможность задать свой ранкер через expr но вот что туда передавать? Сейчас используем ранкер sph04.
Посоветуйте в какую сторону копать.

select weight() as w, w + delivery_state * 1000 as sort from idx order by sort desc

так должно работать

1 Like