Android搜索:使用FTS表和普通的SQLite数据库表

前端之家收集整理的这篇文章主要介绍了Android搜索:使用FTS表和普通的SQLite数据库表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这更像是一个设计问题 – 而不仅仅是编码问题.

我已经有一个应用程序,可以在sqlite数据库表中存储数据.现在我想在此添加搜索功能.

据我所知,为了启用搜索功能,我需要FTS表.

我拥有的表格(不完全相同,但给出了非常相似的例子):

内容表 – 包含以下列:Id,标题,内容,创建者,更改者,更改者等…

评论表 – 包含以下列:Id,评论,回复等…

其他表格,如用户数据,元数据,类别,标签等.

在这里,我只想要标题,内容评论搜索功能.显然我不需要像其他列那样的搜索功能.

哪个是最好的选择?

>我应该丢弃旧表并仅创建FTS表吗?
>我应该继续使用旧表并创建仅支持搜索功能的新FTS表.

我在选项1中看到的问题是:

>这是一次颠覆性的变革!
>我有一组包含许多非文本列的多个表,我不打算在其中执行搜索.如何在FTS中对它们进行建模?
>现在我正在使用像Join等RDBMS的功能,如果我完全切换到FTS表,我认为我无法做到这一点!

我在选项2中看到的问题是:

>它将导致重复的表 – 并将消耗更多的内存/空间!
>每次在sql表中插入/更新/修改条目时,我都必须在FTS表中进行相同的更改.

那么,最好的选择是什么?
有任何机构面临类似的挑战吗?

解决方法

对于非FTS搜索,无法有效查询FTS表,因此选项1已用完.

整个FTS表基本上是一个索引.这是一个速度/空间权衡,并且进行全文搜索的能力通常是值得的.
要避免两次存储原始文本,请使用external content tables.

要使原始表和FTS表保持同步,请使用触发器.

猜你在找的Android相关文章