Google应用引擎 - 帮助进行查询优化

时间:2015-02-05 22:28:59

标签: google-app-engine

我在app引擎中运行查询时遇到了一个场景,这大大增加了我的成本。 我正在编写以下查询以获取图书名称 -

Iterable<Entity> entities =
              datastore.prepare(query).asIterable(DEFAULT_FETCH_OPTIONS);

之后,我运行一个循环,将名称与用户请求的名称相匹配。这导致数据存储区中整本书籍的数据读取,并且数据存储区中的书籍详细信息日益增加,因此在读取整个列表时会进一步影响成本。 是否有替代方法只为用户提取所请求的书籍细节数据,以便我不必阅读完整的数据存储? SQL会帮助还是过滤?如果有人提供查询,我将不胜感激。

1 个答案:

答案 0 :(得分:2)

您有两种选择:

  1. 如果您完全匹配标题,请将其设为索引字段,并使用过滤器仅提取标题完全相同的图书。

  2. 如果您也在标题内搜索:

    一个。您可以使用Search API为所有标题编制索引,并使用它来查找用户正在查找的图书。

    湾一个不太理想但快速的解决方案是创建一个仅读取书名的projection query