Ostatnio zajrzałem także do rozwiązań pełnotekstowych. Wygląda na to, że SQLite nie ma obecnie de facto wyboru. Bez względu na to, co wybierzesz, nieuniknione jest, że będziesz musiał ponownie go skompilować, ponieważ dojrzewają różne rozwiązania FT2, FT3 itd. Więc zgryźmy kulę i przyjmijmy, że będziesz musiał zrobić więcej w przyszłości, aby nadążyć za zmianą technologii pełnego tekstu.
Sphinx Search nie ma jeszcze wsparcia dla SQLite. Obsługuje teraz tylko MySQL i PostgreSQL (około sierpnia 2009). Musisz więc zhackować własne złącze SQLite lub zmigrować dane SQLite do MySQL lub PostgreSQL, a następnie zindeksować dane za pomocą Sphinx Search. Wydaje mi się, że ktoś pracuje nad poprawką Sphinx Search, by obsługiwać Firebird, więc może nie jest tak trudno, jeśli chcesz zwinąć rękawy.
Należy również pamiętać, że wyszukiwanie Sphinx ma pewne ograniczenia dotyczące przyrostowego dodawania danych do indeksu. Powinieneś poświęcić około godziny na czytanie dokumentu, zanim zdecydujesz się go użyć.
Nie znam żadnego bezpośredniego sposobu indeksowania danych SQLite w Lucene. Prawdopodobnie będziesz musiał napisać własny kod, aby przetworzyć partie danych SQLite, dodając wiersze do indeksu Lucene pojedynczo. To wydaje się być użycie Lucene bez względu na bazę danych.
zmiana:Solr jest doskonałym towarzyszem dla technologii Lucene. Solr daje tej wyszukiwarce wiele funkcji, w tym możliwość zbiorczego ładowania danych wyników zapytania z dowolnego źródła danych JDBC.
Myślę, że sqlite3 fts3 jest lepsze niż jakiekolwiek rozwiązanie zewnętrzne. Mniej ruchomych części. Przełączanie z fts2 na fts3 nie może być tak trudne, jak integracja Sphinx z jego ograniczeniami aktualizacji lub innymi rozwiązaniami zewnętrznymi. –
@Seun: Zgadzam się - nieco. To prawda, że Sphinx Search wymaga zainstalowania kolejnego oprogramowania, podczas gdy fts3 jest wbudowany w SQLite. Jednak fts3 nie jest wbudowany w domyślne kompilacje, więc musisz sam skompilować SQLite. A fts3 jest typem * wirtualnej tabeli *, musisz wykonać ręczne kopiowanie danych z tabeli źródłowej do tabeli fts3 niezależnie. Ma pewne ruchome części, bez względu na to, jak to robisz. –
FTS3 był częścią oficjalnej biblioteki DLL, podobnie jak FTS4. –