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
}

Odnośniki Zewnętrzne