sqlite支持全文搜索。通过全文搜索功能,可以方便用户快速进行查找。在iOS中,GRDB、FMDB等sqlite框架均支持FTS技术,如FTS3、FTS4等。各个框架语法不同,但是操作方式相同。在使用的时候,都需要根据目标(记录集或者表)建立对应的虚拟表。sqlite会读取对应的数据,进行分词,组成一个B树。为了存储B树,会构建三个真实表。这三个表均以虚拟表的名字为前缀,并分别以_content、_segments、_segdir。下面依次介绍这三个表:
后缀为_segments的表保存B树的非根节点。每个记录都包括blockid和block两列。
后缀为_segdir的表只保存B树的根节点。