我正在进行类似https://cloud.google.com/appengine/articles/indexselection
中详述的高级搜索我将过滤器的数量从2增加到4,有4个排序。如果我在这个搜索上创建一个完美的索引,我的index.yaml中需要64个索引。我按照高级搜索文章中的建议,为每个过滤器和排序顺序创建了基本索引,从而产生了20个索引。我通过使用dev_appserver.py运行我的开发服务器测试了这些索引满足了我的搜索--require_indexes
如果我回到常规开发工作流程并只运行dev_appserver.py,访问我的搜索页面会创建完美的索引。我不想通过始终使用--require_indexes来放弃为其他开发方面生成索引的能力。我也不希望开发服务器创建这些额外的索引。有没有办法让服务器只创建新索引,否则会引发NeedIndexError?
答案 0 :(得分:2)
目前无法使用dev appserver获取您的(非常明智且有用!)所需的功能。
我相信 可以添加并支持新标志,类似于"比#34;更柔和。 --require_indexes
,具有您建议的语义 - 根据需要更新index.yaml
"" 但只是作为最后一次反击而不是NeedIndexError
。
然而,我不鼓励将其作为SDK的一个分支(鉴于其开源许可证,这将是完全合法的,但是因为随着新SDK的发布而向前推进补丁将很快变得非常麻烦: - )。 / p>
相反,我会 - 首先 - 在https://code.google.com/p/googleappengine/issues/list上打开一个功能请求。
接下来,我建议您(A)保存您精心手工制作的index.yaml
并在部署之前编辑/修剪膨胀的自动生成的一个,或者(B)使用--require_indexes
运行并根据需要耐心地手动编辑index.yaml
(无论一次NeedIndexError
追溯已经告诉过您,还是预先确认您已经添加了一些新查询。
是的,编辑SDK以添加和支持新标志无济于事,但......它可能会更好地满足您应用的需求!