Не могу придумать как написать поиск по сайту на php?
Ищите каждое слово в отдельности и потом агрегируйте результаты, если база маленькая то будет работать, если база большая то прикручивайте sphinxsearch
PostgreSQL из коробки поддерживает полнотекстовый поиск, в т.ч. со словоформами на русском, настраивается базовый уровень очень быстро, всё описано в официальной документации. Есть родная поддержка удаления тэгов, настройки релевантности, синонимы-тезаурусы и прочее, в дальнейшем можно в любую сторону расшириться.