运行查询时,该查询的结果将缓存在“脱机Appsync缓存”中。如果然后脱机并再次运行完全相同的查询,我将能够看到该查询的结果。如果我稍稍更改查询,则不会返回任何内容。
例如,如果我对{name:{matchPhrase:“ PUMP”}}进行可搜索查询(ElasticSearch),则会将下面的3条记录返回到缓存中。如果我脱机并现在将其更改为查询以查找“ PISTON”,则不会返回任何内容-即使它在缓存中。
->缓存中的数据 离心泵 活塞泵 回转泵
我知道我可以显示已缓存项目的列表,然后选择“ PISTON PUMP”记录(即,如果我知道记录的ID,则可以检索它)。但是,如果我缓存了成千上万条记录,则需要能够过滤结果。
很显然,AppSync中的查询是通过在DynamoDB / ElasticSearch中组成查询的解析器进行的-因此,当这些系统在脱机模式下不可用时,您将没有相同级别的查询功能。但是,我们确实有用于缓存的SQLite,所以解析器可以通过某种方式了解其不在线,并且可以对SQLite数据库进行简单的查询吗?
我们的应用程序已成功缓存数据和执行的所有查询。但是我们不知道从哪里开始能够在本地设备的缓存中进行过滤。