Mam aplikację na Androida, która wyszukuje dane w bazie danych SQLite za pomocą wirtualnych tabel FTS4. Działa dobrze, ale gdy dane w tabelach zawierają znaki specjalne (takie jak "á", "é", "í", "ó", "ú" lub "ń"), funkcja SQLite MATCH nie daje żadnych wyników. Zgubiłem się w tym momencie. Dzięki.Wyszukiwanie SQLite FTS4 za pomocą znaków specjalnych
5
A
Odpowiedz
0
Uwaga: domyślny tokenizer jest naprawdę słaby. Aby uzyskać dobre wyniki, należy zaimplementować niestandardowy tokenizer. Ścieżka nie jest tak prosta:
- znaleźć tokenizera które powinny zmieścić się na potrzebę lub rozwijać to
- klej go ze źródłami sqlite.c
- przykleić interfejs JNI (z Stemmer?) zawijać rodzimych biblioteki tak będzie dostępny z Dalvik VM
- użycie NDK skompilować sqlite.c od podstaw i przygotować bibliotekę dynamiczną dla Androida
Tutaj w stackoverflow powinieneś znaleźć dobre posty, aby zacząć uczyć się, jak to zrobić.
Spójrz na te projekty, aby uzyskać jakiś dobry punkt początkowy:
- sqlite4java
- sqlcipher
Co [tokenizer] (http://www.sqlite.org/fts3.html# tokenizer), którego używasz? –
Cóż, nie używam żadnego tokenizera i nie wiem jak to działa. Moje wyszukiwanie jest następujące: SELECT * FROM table1_fts4 WHERE table1_fts4 MATCH "zapytanie"; – user1387981