2

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に格納し、文字列内の単語ごとに、その単語の小文字バージョンを冠詞とともに に格納rowidarticle_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か、すべての行を単純に検索しますか?

4

1 に答える 1

5

NSPredicate を使用して、要件に応じて特定の属性を取得します。また、コア データのように Sqlite でマッピングを行うこともできます。

于 2012-12-20T08:44:43.757 に答える