Ну что-ж, если вас действительно интересует механизм работы, то вот механизм работы W3Search:
1. Поиск состоит из двух частей: собственно поиска и индексатора.
2. Индексатор периодически ходит по страницам сайта, выглядит это так:
— Скачиваем код страницы (cURL-ом или fsockopen-ом, смотря что есть на сервере)
— Если пришёл ответ сервера в четвёртом или пятом блоке ответов (40? или 50?) — удаляем страницу из индекса (она не существует или недоступна)
— Если нужно, перекодируем результат (по умолчанию все данные должны быть в windows-1251)
— Выбираем оттуда все ссылки и добавляем в базу (чтобы проиндексировать позднее)
— Вычищаем код страницы от тегов, оставляем только текст
— Вычищаем, также, содержимое блоков <noindex> и <!-- … -->
— Вычищаем лишние пробелы, переносы строк и прочее
— Заносим в БД
В поиске используется SQL-команда LIKE. Можно было бы использовать MATCH … AGAINST, если бы он корректно понимал русский язык, но увы, у него с этим проблемы (он ставит нулевую релевантность).