我正在开发一个(Cordova iOS / Android)移动应用程序,其中<100MB的缓慢变化,只读(对用户)数据需要可搜索(全文和方面)。来自网络背景,我们通常提供来自Web API和数据库的数据。但是,我们希望该应用程序可在离线模式下使用。鉴于数据库可以很好地适应设备,我们不需要对大多数数据集进行实时更新,我想研究一下如何在设备上预先定位内容。我们是订阅服务,所以这些数据是付费墙背后的(我认为这限制了我们使用Core Spotlight / Firebase应用程序索引的选项)。
鉴于我们提出的任何内容必须是跨平台的,我专注于Sqlite(可能是与应用程序捆绑在一起的自定义构建版本)。它具有全文搜索功能,我们可以根据相关的facet数据进行过滤。
这是我正在调查的方法:
是否有现有服务或库已经执行此操作?
Fossil似乎做了很多,但它并没有被广泛使用。我找不到它被用作移动应用程序的内容存储库的情况。此外,我们不需要从设备中备份更改,因此我不知道我们是否会为我们不需要的功能承担大量开销。
提供同步和离线(AppSync,Firebase)的大多数其他服务似乎对我们的需求来说太过分了,而且更多的是专注于多作者,实时后端。
我最近不得不研究这个问题,我提出的两个选项是
我选择了2(SQLite),因为我没有复杂的同步要求,这是一个爱好项目,而且数据移动速度很慢。从我对Couchbase的评价来看,我绝对建议考虑一下。
Firebase和AppSync都不提供离线全文搜索。