Pewnie pierwsze pytanie jakie rodzi się w głowie to co to jest ten Sphinx, sieć restauracji? a może ten z Egiptu się ruszył z posad? Nie, już wyjaśniam...
Sphinx jest to open source’owy silnik wyszukiwarki SQL, dostępny jest na licencji GPL2, czyli w skrócie darmowy do zastosowań związanych ze stronami internetowymi.
Pierwsza i zarazem najważniejsza sprawa to taka, że jest to program, który musi zostać skompilowana i zainstalowana w systemie, co wyklucza wszelakie hostingi współdzielone i temu pokrewne.
Dlaczego Sphinx
Tak naprawdę szukałem rozwiązania przyspieszającego wyszukiwanie w sklepie internetowym i po wielu perturbacjach dokopałem się właśnie do tego projektu.
Zaletą Sphinxa jest to, że nie operuje bezpośrednio na bazie danych, a jedynie na wcześniej przygotowanych i cachowanych indeksach. Dzięki takiemu podejściu wyszukiwarka na naszej stronie przestaje być tzw. „wąskim gardłem” gdzie klient traci czas, aby cokolwiek znaleźć, bo musi czekać na przeanalizowanie danych.
Inne plusy to:
- Współpracuje z wieloma typami baz danych: PostgreSQL, MySQL i MSSQL.
- Posiada API dla języków takich jak PHP, Python, Java, Perl, Ruby i C/C++.
- Wspiera stronnicowanie rezultatów.
- Bardzo szybkie indeksowanie.
- Bardzo szybkie wyszukiwanie.
Największym minusem programu jest nie aktualizowanie indeksu po jakiejkolwiek zmianie danych, jest to o tyle uciążliwe, że w sklepie internetowym, gdzie zmieniają się różne produkty, ten index nie zawsze będzie aktualny. Tym problemem zajmę się później.
Oswajanie zwierza
Niby wszystko prosto, ale jak każdy program i ten może sprawić parę problemów. Więc pokrótce opisze co jest co, najważniejsze rzeczy:
- searchd – deamon wyszukiwarki. Musi być cały czas uruchomiony, to właśnie dzięki niemu mamy możliwość przeszukiwania indeksów i odczytywania tego co zwróci.
- search – narzędzie do testowania z poziomu linii komend.
- indexer – generator indeksu. Służy do budowania indeksu.
- spelldump – narzędzie ułatwiające tworzenie słownika (proces ten też postaram się dokładnie opisać, ponieważ przydaje się przy wyszukiwaniu).
Tyle na teraz nie długo dalsza część, czyli instalacja i konfiguracja programu.