Zawody ze Sphinx-em. Co to jest? (cz. 1)

calendar_today2016-03-20 folder Na naukę zawsze czas /  Programowanie
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.

Skontaktuj się z nami

keyboard_arrow_up Zadzwoń