Opis zastosowania modułu SQLite FTS3 do pełnotekstowego wyszukiwania rekordów
SQLite w wersji 3.5.9 i nowszych obsługuje pełnotekstowe (tak jakby, nie jest zbyt zaawansowany) wyszukiwanie za pomocą modułów FTS1,2,3. W PHP 5.2 i nowszych można bez problemu korzystać z tego "modułu" by stworzyć wydajny system wyszukiwania dla tej bazy danych.
Oto przykładowy skrypt obrazujący implementację i możliwości wyszukiwania przez FTS3:
Jeżeli mamy zbyt stare PHP (i tym samym zbyt starą bibliotekę SQLite) to tworzenie wirtualnej tabeli z FTS3 nie powiedzie się (można próbować jeszcze użyć FTS2 czy FTS1 w identyczny sposób).Podstawa to stworzenie (jednorazowe) tabeli wirtualnej obsługujące wyszukiwanie:
Drugi element to wyszukiwanie, które realizujemy za pomocą zapytania SQL:
FTS3 to dość prosty mechanizm wyszukiwania. Jeżeli potrzebujemy czegoś bardziej zaawansowanego, w pełni pełnotekstowego (rozróżniającego odmianę wyrazów - stemming) to musimy sięgnąć po rozwiązania z górnej półki jak Solr czy Xapian (użycie czego wymaga raczej własnego serwera, lub odpowiedniej konfiguracji usług w przypadku lepszego hostingu współdzielonego). Dla bazy MySQL możemy użyć Sphinxa (popularnie używany na serwisach średniego i większego kalibru, także wymaga własnego serwera generalnie), lub na mniejsze obciążenia systemu pełnotekstowego MySQL dla tabel MyISAM. Dla PostgreSQL dostępne jest kilka rozwiązań jak OpenFTS.
A jeżeli mamy dobrze zindeksowany w Google serwis, to można wykorzystać wklejkę Google Ajax Search ograniczając wyniki dla własnej strony :)