sqlite - 有效匹配索引 SQLite 字段的第一个字符

标签 sqlite optimization indexing full-text-search

我在 SQLite 中有两个表:

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 的文章。

如何修改表/添加更多表(如果需要)并查询它们以最佳匹配?是否

从文章 a、article_word w 中选择 a.rowid、a.body,其中 w.word LIKE "baz%"AND a.rowid = w.article_rowid

利用 article_word.word 上的 PRIMARY KEY 索引,还是简单地搜索每一行?

最佳答案

根据您的需要使用 NSPredicate 检索特定属性 要求,您也可以像核心数据中那样使用 Sqlite 进行映射。

关于sqlite - 有效匹配索引 SQLite 字段的第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13966678/

相关文章:

mysql - 优化 django 查询

indexing - 阻止某些地址被抓取 Robots.txt

objective-c - sqlite数据库更新

sqlite - 如何在 SQLite+SQLalchemy 中减去日期时间?

sql - Active Record 查询导致 SQLException 接近 ","语法错误

php - 如何在 Laravel 中获取和更改元素数组的值?

python - 在数据框中分隔特定值

python - 匹配键并插入到新列中

c - 使用 SSE 以最快的速度实现自然指数函数

php - Youtube API - 从播放列表中获取视频的持续时间