SQLite su Android è stato costruito con il tokenizer ICU abilitato per FTS?

Come dice il titolo: possiamo usare ...USING fts3(tokenizer icu th_TH, ...) . Se possiamo, qualcuno sa quali sono le localizzazioni supportte e se varia a seconda della versione piattaforma?

  • la connessione non è rioutput: ECONNREFUSED
  • Invia dati tramite USB da Android App a PC
  • Passare le stringhe tra le attività in android
  • Come posso personalizzare il colore e il text della modalità azione?
  • get contatti da un gruppo specificato in android
  • Android: scheda evidenziata di TabWidget non leggibile su HTC Sense
  • come posso notificare un'attività in esecuzione da un ricevitore broadcast?
  • Trasmettitore ricevente per SMS inviato
  • come impostare un text su un imageView?
  • Come accelerare il tempo di unzipping in Java / Android?
  • Android - Come uscire da un'applicazione quando l'utente fa clic sul button Home?
  • Come creare Http Connection utilizzando la class AsyncTask?
  • 3 Solutions collect form web for “SQLite su Android è stato costruito con il tokenizer ICU abilitato per FTS?”

    No, solo tokenizer = porttore

    Quando specifico tokenizer = icu, ottengo "android.database.sqlite.SQLiteException: unknown tokenizer: icu"

    Inoltre, questo collegamento indica che se Android non la compila per impostazione predefinita, non sarà disponibile http://sqlite.phxsoftware.com/forums/t/2349.aspx

    Per API Level 21 o superiore, ho provato e ho scoperto che il tokenizer ICU è già disponibile.

    Tuttavia, per supportre i dispositivi 90% +, è ansible fare un certo lavoro. Ho un'idea di lavoro, che è anche menzionata nella mia altra domanda: Lavorare attorno a ricerca di text full-text di Android SQLite per il text asiatico

    Puoi portre la function di tokenizer ICU in java o un module Android nativo come module separato, ma non direttamente coinvolto in SQLite. Quindi utilizzare la "tabella dei contenuti esterni" per collegarsi alla tabella virtuale (supportta da FTS4).

    Quando si aggiunge la tupla, aggiungere il contenuto normale alla tabella dei contenuti esterni, ma invoca il token di stand alone per aggiungere spazi artificiali al limite delle parole prima di aggiungere alla tabella indice virtuale.

    Quando si esegue l'eliminazione delle tuple, ricall nuovamente il tokenizzatore per aggiornare la tabella dei contenuti con spazi artificiali, quindi eliminare la tupla della tabella virtuale e quindi eliminare la tuple della tabella dei contenuti.

    Questo è un po 'complicato, ma confrontando un'altra opzione di ri-compilare un SQLite completo, è già molto less sforzo.

    Per la tabella dei contenuti esterni e come funziona, consulta https://www.sqlite.org/fts3.html#section_6_2_2

    Il tokenizer ICU disponibile è realmente presente in SDK di Android. Utilizzare BreakIterator.getWordInstance. Sembra che supporti anche il tokenizer basato su dictionary per lingue come il cinese. http://developer.android.com/reference/java/text/BreakIterator.html

    Ho un codice Android che utilizza la tattenizzazione nel collegamento qui sotto, forse sarà di aiuto:

    https://github.com/gast-lib/gast-lib/blob/master/app/src/root/gast/playground/speech/food/db/FtsIndexedFoodDatabase.java

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.