SQLite に 2 つのテーブルがあります。
CREATE TABLE article (body TEXT)
CREATE TABLE article_word (
word TEXT,
article_rowid INTEGER,
FOREIGN KEY(article_rowid) REFERENCES article(rowid),
PRIMARY KEY(word, article_rowid)
)
プログラムは長い文字列をarticle.body
に格納し、文字列内の単語ごとに、その単語の小文字バージョンを冠詞とともに に格納rowid
しarticle_word
ます。
単語の最初の大文字と小文字を区別しない文字でユーザーが記事を検索できるようにしたいので、 を検索するbaz
と を含む記事が得られますfoobar Bazquux spambacon
。
テーブルを変更したり (必要に応じて) さらに追加したり、最適に一致するようにクエリを実行したりするにはどうすればよいですか? する
SELECT a.rowid, a.body FROM article a, article_word w WHERE w.word LIKE "baz%" AND a.rowid = w.article_rowid
PRIMARY KEY
インデックスを利用するarticle_word.word
か、すべての行を単純に検索しますか?