Nonostante il fatto ha trovato alcuni dettagli cercherò di fornire risposta dettagliata:
1. Vuol quindi utilizzare la doppia memorizzazione in totale?
Sì, sì. Inoltre potrebbe usare l'evento più spazio. Ad esempio, per noto Enron E-Mail Dataset e FTS3example, basta sentire la differenza:

La tabella FTS3 consuma circa 2006 MB su disco rispetto ad appena 1453 MB per il tavolo ordinario
Il tavolo FTS3 ha impiegato poco meno di 31 minuti per popolare, contro il 25 per il tavolo ordinario
Il che rende la situazione un po 'sgradevole, ma ancora di ricerca full-text vale la pena.
2. Posso utilizzare un tavolo virtuale simile a un normale tavolo?
La risposta breve no, non è possibile.Il tavolo virtuale è solo una sorta di Visualizza con diverse limitazioni. Ne hai già notato parecchi.
In generale si dice che non si dovrebbe usare alcuna funzione che sembra essere innaturale per un Visualizza. Solo un minimo indispensabile per consentire alla tua applicazione di sfruttare appieno la potenza della ricerca full-text. Quindi non ci saranno sorprese in seguito, con la versione più recente del modulo.
Non c'è alcuna magia dietro questa soluzione, è solo un compromesso tra prestazioni, spazio su disco richiesto e funzionalità.
conclusione finale
vivamente consiglio di utilizzare FTS4, perché è più veloce e l'unico inconveniente è necessario ulteriore spazio.
In ogni caso, è necessario progettare attentamente la tabella virtuale tenendo conto di una natura supplementare e altamente specializzata di tale soluzione. In altre parole, non provare a sostituire la tabella iniziale con quella virtuale. Usali entrambi con grande cura.
Aggiornamento Si consiglia di consultare il seguente articolo: iOS full-text search with Core Data and SQLite. Diversi momenti interessanti:
- La tabella virtuale viene creato nello stesso database SQLite in wich il contenuto Core Data risiede. Per mantenere questa tabella il più leggera possibile vengono inserite solo le proprietà dell'oggetto pertinenti alla query di ricerca.
- L'implementazione SQLite offre qualcosa che i dati principali non sono: ricerca full-text. Accanto a questo, esegue quasi il 10% più veloce e almeno il 660% in più (memoria) in modo efficiente rispetto a una query di dati di base comparabile.
fonte
2013-08-26 13:20:19
@RenatGilmanov Penso perché questa è più di una risposta? –