Кто-нибудь делал в битриксовском компоненте поиска search.page вывод только товаров в наличии? Попробовал выставлять в компоненте вывод сразу очень большого числа результатов на страницу и отсеивать в result_modifier.php то что отсутствуют, но это довольно сильно тормозило загрузку страницы. В особо больших выборках ничего кроме 504 ошибки получать не удавалось.
Используйте событие OnReindex и в момент переиндексации товара проверяете есть ли товар в наличии, если его нету то не добавляете его в поисковый индекс.