Pełnotekstowe wyszukiwanie w PHP z wykorzystaniem Sphinxa
W Bibliotece Pythona, w artykule Pełnotekstowa wyszukiwarka Sphinx opisałem wyszukiwarkę Sphinx służącą do wydajnego wyszukiwania dokumentów. Zaletą tej aplikacji jest obsługa danych zawartych w bazach danych MySQL i PostgreSQL. Pełnotekstowe wyszukiwanie za pomocą Sphinxa jest znacznie wydajniejsze od odpowiednika dostępnego w bazie MySQL.
Sphinx posiada także bibliotekę dla języka PHP. Wystarczy pobrać paczkę źródłową i rozpakować. W katalogu api znajdziemy plik sphinxapi.php, który wystarczy skopiować do katalogu dostępnego dla serwera (np. katalog ze skryptem). Jeżeli dysponujemy własnym serwerem i mamy możliwość instalowania binarnych rozszerzeń, to możemy użyć PECL Sphinx - binarnego API, zgodnego z tym dostępnych razem ze Sphinxem. Binarne rozszerzenie z natury będzie szybsze od kodu PHP (oczywiście nie dotyczy to szybkości wykonywania wyszukiwań).
Sphinx i PHP
Dla tej samej struktury bazy danych i konfiguracji Sphinxa, co przedstawionej w artykule Pełnotekstowa wyszukiwarka Sphinx skrypt wykonujący wyszukanie wyglądałby następująco: Dla API binarnego wystarczy usunąć "include" i dodać extension=sphinx.so w php.ini. API jest dość rozbudowane i obsługuje wiele opcji sortowania, czy też dopasowywania wyników. Bardziej szczegółowa dokumentacja dostępna jest w sieci:Build a custom search engine with PHP
Dokumentacja API PHP na wiki Sphinxa
Lista artykułów poświęconych Sphinxowi
Dokumentacja