Jest to raczej pytanie projektowe - nie tylko pytanie o kodowanie.Wyszukiwanie w Androidzie: używaj tabel FTS wraz z normalnymi tabelami SQLite
Mam już aplikację, która przechowuje dane w tabelach SQLite DB. Teraz chcę dodać do tego funkcję wyszukiwania.
Rozumiem, że w celu włączenia funkcji wyszukiwania potrzebuję tabel FTS.
tabele, które mam są (nie dokładnie takie same, ale daje bardzo podobny przykład):
stół zawartość - ma kolumny jak: id, tytuł, treść, utworzonych przez Dodany dnia, zmienił By, zmieniane etc ...
Komentarze stół - zawiera kolumny jak: id, komentarze, utworzonych przez Dodany dnia, w odpowiedzi na etc ...
innych tabel, takich jak dane użytkownika, meta danych, kategoriach , Tagi itp.
Tutaj chcę tylko możliwości wyszukiwania w tytule, treści i komentarze. Oczywiście nie potrzebuję możliwości wyszukiwania w innych kolumnach, takich jak utworzone przez itp.
Która opcja jest najlepsza?
- Czy należy odrzucić moje stare tabele i utworzyć TYLKO tabelę FTS?
- Należy nadal używać starych tabel i tworzyć nowe tabele FTS, które obsługują tylko funkcję wyszukiwania.
Problemy, które widzę z opcji 1 to:
- Jest to uciążliwy zmiana!
- Mam zestaw wielu tabel z wieloma kolumnami nietekstowymi, na których nie zamierzam wykonywać wyszukiwania. Jak mam je modelować w FTS?
- W tej chwili używam funkcji RDBMS takich jak Join etc, które, jak sądzę, nie będę w stanie zrobić, jeśli przełączę się całkowicie na tabele FTS!
Problemy, które widzę z opcją 2 są:
- Spowoduje to zduplikowanych tabel - i będzie zużywać więcej pamięci/miejsca!
- Za każdym razem, gdy wstawiam/aktualizuję/modyfikuję wpis w moich tabelach SQL, muszę wprowadzić tę samą zmianę w tabelach FTS.
Jaka jest najlepsza opcja? Czy jakiekolwiek ciało zmagało się z podobnymi wyzwaniami?
Dzięki za wskazanie odpowiedniej sekcji ... Oczywiście nie przeczytałem całej dokumentacji .. –