我正在尝试创建一个类似于Android的应用程序,并希望允许快速搜索,因此正在研究针对Android的SQLite的FTS。我知道如何创建它,但是有几个问题:
Table_words - 我的单词表
如果我创建一个新的FTS表,即Table_words_fts,它会替换table_words吗?还是只是添加另一个表?
如果作为另一个表添加,我是否可以通过代码将数据同时添加到FTS表和table_words中?
如果是这样,我是否可以省略一些不必要的列并包含其他不在table_words表中的列?
如果我只是替换编号1中的表,那么它会影响常规查询吗?
如果我不需要在新的FTS表中存储数据,那么它只是被添加以便更快地读取表格吗?
到目前为止,我的理解是,它是一个单独的表,我需要通过代码向其中添加数据,并且我可以省略一些列,但不能添加新列。此外,我存储数据的方式与将其添加到其他表中的方式完全相同...
以下是我的工作想法...创建表:
// create FTS tables for quicker matches for search
db.execSQL("CREATE VIRTUAL TABLE " + TABLE_WORDS_FTS + " USING fts3("
+ KEY_ID + ", " + KEY_DICTIONARYID + ", " + KEY_WORD1 + " , "
+ KEY_WORD2 + " , " + KEY_WORD3 + ", " + KEY_WORD4 + " " + ");");
创建常规表格:// Words table create statement
private static final String CREATE_TABLE_WORDS = "CREATE TABLE "
+ TABLE_WORDS + "(" + KEY_ID + " INTEGER PRIMARY KEY,"
+ KEY_DICTIONARYID + " INTEGER," + KEY_WORD1 + " TEXT," + KEY_WORD2
+ " TEXT," + KEY_WORD3 + " TEXT," + KEY_WORD4 + " TEXT" + ")";
db.execSQL(CREATE_TABLE_WORDS);
接下来我将按照常规方式继续处理...但是回顾一下:是否尝试找出表格是否被额外创建?数据是否也被常规存储在其中?