__SP1RiT__
хмм. если я правильно понял. нужные идишники и ревалентность вы уже имеете в памяти ка результат
предварительных запросов и вычислений. ревалентность как числовой параметр и вас уже есть.
тогда логично просто откешировать их в таблицу
(полезно если результаты поиска с разбивкой по страницам).
searckesh (id, - первичный ключ searckesh
id_poiska, - индексное поле индетификатор запроса использовать при навигации по страницам
timestamp, - временная метка для очистки через 15-60 минут кеша
id_main, - идентификатор записи в основной таблице
ves - ревалентность
)
надеюсь как соединить таблицы объяснять не надо ?
в запросе отбирается по нужному id_poiska сортировка по ves лимит получается из номера нужной страницы и числа записей.
ну а если выдача в одну страницу , то отсортируй массив (ид,вес, текст_пока_пустая строка) по весу .
сделай свою выборку и результаты фетча пока не выводишь, а заполняешь третье поле используя
индекс для доступа к нужному элементу массива.
потом в цикле foreach формируешь выдачу пользователю