Битрикс система очень мощная. По этому она и сложная, и уходит время на её обучение. Вот вы в примере кода пытаетесь сделать поиск "с нуля" чуть ли ни на SQL запросах. Вам же нужно будет реализовать стемминг, что совсем не простая задача, если посмотрите в Википедии. Вам нужно организовать подсчет релевантности, да и вопрос производительности встанет во весь рост - после правильного стемминга поиск нужно будет провести не по N записей, а по N*M(словоформ) записей, у тут придётся создавать таблицы в БД, ругаться что Битрикс тормозит ... )))
На самом деле, большая часть задачи в Битриксе уже решена, и это прекрасно. Есть модуль поиска, который настраивается через админку (выбираем галочками какие инфоблоки, какие свойства инфоблоков индексируются поиском). Есть готовый компонент, который выведет результаты. Все вышеперечисленные сложности останутся "под капотом", даже будет работать определение неверно выбранной раскладки клавиатуры.
На самом деле есть еще и API, которое позволяет на этапе формирования запроса ограничить область поиска конкретным инфоблоком. Ну и в результате поиска вы, конечно, получаете небольшй набор ID элементов, которые уже можно вручную проверить по каким-то критериям.