Sphinx
Sphinx to otwarty, w pełni tekstowy serwer wyszukiwania stworzony w C++ i udostępniony na licencji GPLv2. Najczęściej jest wykorzystywany do indeksowania danych z baz MySQL, PostreSQL i specjalnie sformatowanych plików xml.
Elementy Sphinxa
Sphinx składa się z następujących elementów:
-
indexer
- narzędzie do tworzenia pełnotekstowych indeksów (indices); -
searchd
- demon do przeszukiwania indeksów przez zewnętrzne aplikacji (np. skrypty www komunikujące się przez API, MySQ z SphinxSE itp.), jest uruchomiony na serwerze; -
sphinxapi
- zbiór bibliotek udostępniających API Sphinxa dla PHP, Pythona, Javy, Perla, czy Rubiego; -
spelldump
- proste narzędzie do wydobywania pozycji ze słownika ispell lub MySpell służące do dostosowania indexu; -
indextool
- program narzędziowy do zrzucania rozmaitych; -
wordbreaker
- program służący do rozdzielania połączonych wyrazów na oddzielne.
Indeksowanie
Dla wygodniejszej pracy zalecane jest stworzenie paru katalogów, na przykład:
-
wyszukiwanie/dane/wiadomosci
- wszystkie artykuły; -
wyszukiwanie/index/wiadomosci
- wszystkie pliki stworze podczas indeksowania; -
wyszukiwanie/conf
- pliki konfiguracyjne; -
wyszukiwanie/bin/wiadomosci
- skrypty potrzebne do indeksowania.
Plik konfiguracyjny wyszukiwanie/conf/sphinx.conf
:
source wiadomosci { type = xmlpipe xmlpipe_command = /search/bin/news/xmlout.sh xmlpipe_field = content xmlpipe_attr_string = url xmlpipe_attr_uint = date xmlpipe_fixup_utf8 = 1 }