我在app引擎中运行查询时遇到了一个场景,这大大增加了我的成本。 我正在编写以下查询以获取图书名称 -
Iterable<Entity> entities =
datastore.prepare(query).asIterable(DEFAULT_FETCH_OPTIONS);
之后,我运行一个循环,将名称与用户请求的名称相匹配。这导致数据存储区中整本书籍的数据读取,并且数据存储区中的书籍详细信息日益增加,因此在读取整个列表时会进一步影响成本。 是否有替代方法只为用户提取所请求的书籍细节数据,以便我不必阅读完整的数据存储? SQL会帮助还是过滤?如果有人提供查询,我将不胜感激。
答案 0 :(得分:2)
您有两种选择:
如果您完全匹配标题,请将其设为索引字段,并使用过滤器仅提取标题完全相同的图书。
如果您也在标题内搜索:
一个。您可以使用Search API为所有标题编制索引,并使用它来查找用户正在查找的图书。
湾一个不太理想但快速的解决方案是创建一个仅读取书名的projection query。