Ho esaminato recentemente anche le soluzioni full-text. Sembra che SQLite non abbia una scelta di fatto al momento. Indipendentemente da ciò che scegli, è inevitabile che tu debba riprogettarlo mentre le varie soluzioni FT2, FT3, ecc. Maturano. Quindi morde la pallottola e pensate che in futuro dovrete fare più sviluppo per stare al passo con la modifica della tecnologia full-text.
La ricerca della sfinge non ha ancora un supporto diretto per SQLite. Supporta solo MySQL e PostgreSQL in questo momento (circa agosto 2009). Quindi dovresti hackerare il tuo connettore SQLite o migrare i dati SQLite su MySQL o PostgreSQL e quindi indicizzare i dati con Sphinx Search. Penso che qualcuno stia lavorando su una patch Sphinx Search per supportare Firebird, quindi forse non è così difficile se sei disposto a rimboccarti le maniche.
Inoltre, tenere presente che la ricerca di Sfinge ha alcune limitazioni sull'aggiunta incrementale dei dati all'indice. Dovresti passare un'ora o più a leggere il documento prima di decidere di usarlo.
Non conosco alcun modo diretto per indicizzare i dati SQLite in Lucene. Probabilmente dovresti scrivere il tuo codice per elaborare batch di dati SQLite, aggiungendo righe all'indice di Lucene uno alla volta. Questo sembra essere l'uso di Lucene, non importa quale sia il database.
aggiornamento:Solr è una grande tecnologia compagno per Lucene. Solr fornisce a quel motore di ricerca molte funzionalità, tra cui la possibilità di caricare in blocco i dati dei risultati delle query da qualsiasi origine dati JDBC.
fonte
2009-08-29 18:16:49
Penso che sqlite3 fts3 sia preferibile a qualsiasi soluzione esterna. Meno parti mobili. Passare da fts2 a fts3 non può essere difficile come integrare Sphinx con i suoi limiti di aggiornamento o altre soluzioni esterne. –
@Seun: Sono d'accordo - un po '. È vero che Sphinx Search richiedeva l'installazione di un altro software, mentre fts3 è incorporato in SQLite. Tuttavia, fts3 non è integrato nelle build predefinite, quindi è necessario ricompilare SQLite. E fts3 è un tipo * di tabella virtuale *, devi fare un po 'di copia manuale dei dati dalla tabella di origine alla tabella fts3 indipendentemente. Ha alcune parti mobili, non importa come lo fai. –
FTS3 faceva parte della DLL ufficiale, così come lo è ora FTS4. –