FTS improvements

This commit is contained in:
M66B
2020-01-15 10:29:16 +01:00
parent 08098c2285
commit f93bce328b
11 changed files with 179 additions and 21 deletions

View File

@@ -38,14 +38,15 @@ public class FtsDbHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "fts.db";
public FtsDbHelper(Context context) {
FtsDbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.i("FTS create");
db.execSQL("CREATE VIRTUAL TABLE `message` USING fts4(`folder`, `time`, `address`, `subject`, `keyword`, `text`)");
db.execSQL("CREATE VIRTUAL TABLE `message`" +
" USING fts4(`folder`, `time`, `address`, `subject`, `keyword`, `text`)");
}
@Override
@@ -66,7 +67,7 @@ public class FtsDbHelper extends SQLiteOpenHelper {
try {
db.beginTransaction();
db.delete("message", "docid = ?", new Object[]{message.id});
delete(db, message.id);
ContentValues cv = new ContentValues();
cv.put("docid", message.id);
@@ -86,6 +87,10 @@ public class FtsDbHelper extends SQLiteOpenHelper {
}
}
void delete(SQLiteDatabase db, long id) {
db.delete("message", "docid = ?", new Object[]{id});
}
List<Long> match(SQLiteDatabase db, Long folder, String search) {
Log.i("FTS folder=" + folder + " search=" + search);
List<Long> result = new ArrayList<>();
@@ -100,4 +105,11 @@ public class FtsDbHelper extends SQLiteOpenHelper {
Log.i("FTS result=" + result.size());
return result;
}
Cursor getIds(SQLiteDatabase db) {
return db.query(
"message", new String[]{"docid"},
null, null,
null, null, "time");
}
}