首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS上的FTS3或FTS4入门

iOS上的FTS3或FTS4入门
EN

Stack Overflow用户
提问于 2013-02-09 03:23:57
回答 1查看 1.3K关注 0票数 2

我们的数据库中有几个表,我们在iOS上使用LIKE进行搜索。数据增长得越大,速度就越慢。我直接接触了FTS3/FTS4,并通读了一些文档。我对如何开始有点不确定。(如果我的陈述是错误的,或者我误解了文档中的某些内容,请纠正我)。听起来,虚拟表只是一个没有存储在磁盘上的表。因此,如果我们有4列,我们目前使用LIKE进行搜索,我是否要创建4个虚拟表,将原始表中的条目插入到其中一个新虚拟表的行中,然后在通常搜索该列的情况下,使用匹配语法在新虚拟表中搜索,如果该部分到目前为止是正确的,我就有点不知道下一步该做什么了。因为我需要返回到我的原始表中查找,以获得与该行关联的其余列。

或者,人们会将整个数据库的副本创建到一个虚拟表中,然后以这种方式获取信息吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-09 16:36:45

虚拟表并不直接存储在磁盘上,但它们通常使用几个内部的“普通”表来实际存储数据,并且只是更改数据的访问方式。(参见Shadow Tables)

您可以将多个文本列放入一个FTS表中,并使用search either one or all of them

通常,令牌或令牌前缀查询与指定为匹配运算符左侧的FTS表列进行匹配。或者,如果指定了与FTS表本身同名的特殊列,则对所有列执行此操作。

FTS表are not able to do 'normal' queries efficiently,所以你可能仍然需要你的原始表。FTS表的docid列通常是原始表的主键。

如果原始表还包含所有文本,则可以使用external content FTS table来节省一些空间。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14779882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档