2012-09-19 15 views
5

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

+0

Co [tokenizer] (http://www.sqlite.org/fts3.html# tokenizer), którego używasz? –

+0

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

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
Powiązane problemy