Привет всем. Вот вырвал кусок времени из своего нынешнего плотного графика работы, чтобы поделиться с Вами довольно интересным материалом об очень быстром и эффективном автономном поисковом движке - Sphinx.
Что такое Sphinx?
Бесплатный поисковый движек, созданный для индексации содержимого баз данных и поиска по созданным индексам. Распространяется по лицензии GNU General Public License v.2. Поддерживает PostgreSQL и MySQL.
Основные фичи
- Высокая скорость индексации (до 10 мб/с !)
- Высокая скорость поиска (за 0.1 с. на 2-4 гигабайтном индексе !)
- Высокая степень масштабируемости
- Поддержка распределенного поиска
- Поддерживает поиск по фразам
- Поддерживает ранжирование фразы по близости, что обеспечивает хорошую релевантность
- Поддерживает русский и английский стемминг
- Неограниченное количество полей на документ, вес которых может быть изменен на лету
- Группировка документов
- Стоп-слова
- Разные режимы работы
- Общий интерфейс XML
- Клиент на чистом PHP - нет необходимости чего-то компилировать
Установка (под Windows)
Внимание! Все пути к файлам должны составляться из локальных дисков, а не из виртуальных. Пути должны быть абсолютными
- Скачайте дистрибутив Sphinx
- Распакуйте архив на локальный диск
- Скопируйте файл libmysql.dll (найдите на сервере в файлах установки MySQL) в папку bin
- Создайте в папке bin конфигурационный файл sphinx.conf
- Настройте Sphinx с помощью конфиг-файла, как описано в мануале
- Запустите файл /path/to/sphinx/bin/indexer.exe с параметрами: --config /path/to/sphinx/sphinx.conf --all
- Если все хорошо, то должен создаться индекс (не забудьте про абсолютные пути в конфиге + должны быть созданы папки для логов и файлов индекса)
- Далее запустите файл /path/to/sphinx/bin/searchd.exe с параметрами: --install --config /path/to/sphinx.conf. Эта операция должна создать новую службу под названием "searchd"
- Запустите службу searchd

Вот пример реального конфигурационного файла:
Все, установка Sphinx завершена. Рекомендую написать .bat файл для удобства переиндексирования БД. Если возникают проблемы — запустите searchd.exe из командной строки с параметром --config /path/to/sphinx.conf. Все ошибки должны появится тут. Вообще с установкой я очень долго просидел, потому, что таких нюансов, как Вам показываю, не знал, поэтому у Вас должно быть намного меньше трудностей 
Работа с Sphinx
Sphinx имеет свой API. В папке с распакованным дистрибутивом есть папка api. В этой папке Вы можете найти файл sphinxapi.php. Скопируйте данный файл в Ваш проект и подключите его.
Программный интерфейс клиента очень прост и хорошо описан в документации. От себя хочу лишь показать кусочек кода, как пример использования:
Этот код Вы можете немного поправить под свои нужды и сбросить на сервер, чтобы протестировать работоспособность Вашего автономного веб-поиска.
Итог
Сфинкс — очень шустрый автономный поисковый движек. Он очень прост в использовании - это только на первый взгляд он довольно сложный в установке и использовании. Все вопросы жду в каментах. Удачи.
