FTS数据库优化(Android)原理与应用详解(1)

本文探讨了Android中使用SQLite FTS(全文搜索)进行数据库优化的方法。通过创建FTS虚拟表,利用SQLite的fts3实现快速文本搜索。Android官方提供了一个示例项目,展示了如何创建和使用FTS虚拟表,以及如何将数据加载到FTS表中。FTS查询使用了特殊的'MATCH'关键字,与标准SQL的LIKE操作不同。
摘要由CSDN通过智能技术生成
在Android的官方开发文档上,有建议在使用文本类的数据库全文搜索(full-text search)时,使用FTS优化查询速度。有关FTS的介绍文章不多,本文调研整理一下有关知识,供在Android上使用FTS之前参考。

1.什么是FTS?

FTS,即full text searches的缩写。是SQLite提供的一个针对文本类模糊查询的优化工具。不出所料,其优化方式也是在索引上做文章,这部分在4中介绍,暂时不展开。FTS并非标准SQL语言支持的功能。Android的数据库底层基于SQLite,所以也支持FTS。

2.如何在Android上使用FTS?——Android官方demo解析

SQLite提供了一种内嵌于SQL语句中的使用FTS的方法,简单地说,需要做两件事:创建FTS的virtual table、在原始数据库发生增删改的时候trigger FTS virtual table同步。这样,对应的查询就可以在FTS virtual table上进行了。至于创建以及使用索引的事情,是SQLite在背后偷偷做的,使用者无需关心。Android官方给出了一个doc和一个project来演示如何使用FTS,本文先从这里入手,分析一下,然后再做补充。

Android源代码中也提供了这个demo:development/samples/SearchableDictionary
doc内容有限,仅仅是demo project的讲解。

这个demo同时也是Android搜索框架的demo,搜索框架相关内容可以参考另外两篇文章:
如何将自己的App作为外部数据源提供给Android系统搜索?
Android框架/系统服务是怎样管理第三方Search数据源的?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值