検索が必要な場合、Android 開発者マニュアルは SQLite DB で FTS3 を好むようです。FTS3 の説明を読んだところ、永続テーブルではなく仮想テーブルが作成されるようです。SQLite の仮想テーブル (FTS3) と通常のテーブルの違いは何ですか? 仮想テーブルは永続的で、アプリを終了した後もデータベースに残りますか? ありがとうございました。
2 に答える
仮想テーブルにより、SQLite エンジンは (通常は) 非 SQLite コードを使用してデータ ストアのコンテンツにアクセスできます。これにより、開発者はカスタム機能を SQLite に追加できます。
FTS の場合、もともと SQLite エンジンの一部ではありませんでした。エンド ユーザーがデータの全文検索を実行できるようにするのは、SQLite の外部にあるコードでした。
仮想テーブルは永続的ですか? それは実装に依存します。FTS の場合、データは永続的です。ただし、ストレージに RAM を使用する実装を作成することもできます。これは、アプリケーションが終了すると明らかに消えます。
仮想テーブルの詳細: http://www.sqlite.org/vtab.html
検索インターフェースを作成するための API ガイドには、検索の特性に応じて、 FTS3 は LIKE よりもはるかに高速に全文検索を行うことが記載されていると言った方が正確だと思います。たとえば、LIKE を使用する通常の SQLite クエリではワイルドカードを使用できますが、MATCH を使用する FTS3 クエリでは使用できません。トークンを検索する場合は、FTS3 を使用することをお勧めします。不正確な一致を行っている場合は、間違いなく LIKE を使用する必要があります。