2012-12-26 14 views
8

Androidデベロッパーマニュアルは、検索が必要なときにSQLite DBでFTS3を好むようです。私はFTS3の説明を読んで、それは永続的なテーブルの代わりに仮想テーブルを作成するように見えます。 SQLiteの仮想テーブル(FTS3)と通常テーブルの違いは何ですか?仮想テーブルは永久的で、アプリケーションを終了してもデータベースに残りますか?ありがとうございました。ノーマルテーブルvsバーチャルテーブルSQLite DB

答えて

5

仮想テーブルを使用すると、SQLiteエンジンは(通常)非SQLiteコードを使用してデータストアの内容にアクセスできます。これにより、開発者はSQLiteにカスタム機能を追加できます。

FTSの場合、もともとはSQLiteエンジンの一部ではありませんでした。これは、SQLiteの外部にあったコードであり、エンドユーザーがデータのフルテキスト検索を行うことを可能にしました。

仮想テーブルは永続的ですか? これは実装に依存します。 FTSの場合、データは永久的です。しかし、ストレージ用にRAMを使用する実装を作成することもできます。これは、アプリケーションが終了すると明らかに消えます。仮想テーブル上

より:http://www.sqlite.org/vtab.html

0

私はそれが検索インターフェイスを作成するためのAPIガイドがFTS3がはるかに高速LIKE、はの特性に応じてよりフルテキスト検索を行うことに留意すると言うことは、より正確だと思います検索たとえば、LIKEを使用する通常のSQLiteクエリはワイルドカードを許可しますが、MATCHを使用するFTS3クエリはそうではありません。トークンを検索する場合は、FTS3を使用することをお勧めします。あなたが不正確な試合をしているなら、間違いなくLIKEに行かなければなりません。

+0

MATCHも使用するとワイルドカードが許可されると思います。あなたは*私はSQLiteのWebサイトで読んだものに基づいて置く必要があります。 – androidnerd