大規模なデータベースでの検索については、実際に SQLite を使用して FTS3 テーブルを確認する必要があります。この拡張機能は、全文検索を実行することを目的としており、LIKE
.
Android アプリでの一般的な検索を説明するリンクを次に示します:
http://developer.android.com/guide/topics/search/search-dialog.html#PerformingSearch
このリンクは、クエリに使用する仮想テーブルを作成してアクセスする方法を示しています:
http://developer.android.com/training/search/search.html
また、このブログの完全な例:
http://blog.andresteingress.com/2011/09/30/android-quick-tip-using-sqlite-fts-tables/
基本的に、たとえば次のクエリを使用して、仮想テーブルを作成する必要があります。
private static final String FTS_TABLE_CREATE =
"CREATE VIRTUAL TABLE " + FTS_VIRTUAL_TABLE +
" USING fts3 (" +
COL_WORD + ", " +
COL_DEFINITION + ")";
getWordMatches
次に、以下の関数を使用してカーソルを取得できます。
public Cursor getWordMatches(String query, String[] columns) {
String selection = COL_WORD + " MATCH ?";
String[] selectionArgs = new String[] {query+"*"};
return query(selection, selectionArgs, columns);
}
private Cursor query(String selection, String[] selectionArgs, String[] columns) {
SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
builder.setTables(FTS_VIRTUAL_TABLE);
Cursor cursor = builder.query(mDatabaseOpenHelper.getReadableDatabase(),
columns, selection, selectionArgs, null, null, null);
if (cursor == null) {
return null;
} else if (!cursor.moveToFirst()) {
cursor.close();
return null;
}
return cursor;
}
これはすべて Android のドキュメントからのものです。上記のリンクを参照してください。