Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo utilizar FTS3 en SQLite

Tengo mesa con casi 200k entradas. Cuando traté de buscar con LIKE, fue muy lento. Ahora decidí utilizar FTS. Así que he creado dos índices donde se llevará a cabo la búsqueda. Entonces creé fts mesa virtual.

`CREATE TABLE [search_eng] ( [id] INTEGER PRIMARY KEY AUTOINCREMENT, [entry_id] INTEGER, [re_value] TEXT, [ke_value] TEXT, [g_value] TEXT); CREATE INDEX idx_se_re ON search_eng (re_value); CREATE INDEX idx_se_gv ON search_eng (g_value); CREATE VIRTUAL TABLE search_eng_fts USING fts3(id, entry_id, re_value, ke_value, g_value);` 

No tengo ni idea de cómo utilizar la nueva tabla creada FTS. ¿Así que mis preguntas son cómo usar esa tabla virtual para hacer la búsqueda? ¿Puede dar un ejemplo?

  • ¿Cómo puedo comprobar si la tarjeta SIM está disponible en un dispositivo Android?
  • No se puede usar onDismiss () cuando se utilizan diálogos personalizados - Android
  • Android: AndroidHttpClient - ¿cómo establecer el tiempo de espera?
  • Diferencia entre Actividad y FragmentActivity
  • ¿Adjuntar varios oyentes a las vistas en android?
  • La sustitución de url de Android no funciona en la redirección
  • Cómo enviar un evento clave a un texto de edición
  • Eliminar / ocultar una preferencia de la pantalla
  • ¿Cómo puedo administrar la altura de los ítems de spinner android?
  • Tamaño incorrecto de la cuadrícula del widget
  • Problema de fragmentos anidados de Android "java.lang.IllegalStateException: Actividad destruida"
  • No se puede utilizar Fragment.setRetainInstance () como un reemplazo para Activity.onRetainNonConfigurationInstance ()
  • One Solution collect form web for “Cómo utilizar FTS3 en SQLite”

    Esto se explica en la documentación .

    No necesita los dos índices para las búsquedas FTS.

    Debe declarar la columna id como INTEGER PRIMARY KEY . Es probable que no necesite la columna entry_id en la tabla FST.

    Copie el texto en la tabla FTS:

     INSERT INTO search_eng_fts(id, re_value, ke_value, g_value) SELECT id, re_value, ke_value, g_value FROM search_eng; 

    A continuación, puede utilizar el operador MATCH para buscar en esa tabla:

     SELECT id FROM search_eng_fts WHERE re_value MATCH 'hello'; 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.