【发布时间】:2016-08-16 11:19:11
【问题描述】:
我在应用引擎中有实体,我查询为:
foo = Foo.all().filter('bar =', baz).get()
#baz is unicode, bar is a StringProperty
#Foo inherits from db.Model
这适用于大多数实体,但对于 baz 的某些值,即使该实体确实存在,也不会返回任何实体,这可以在 https://console.cloud.google.com/datastore/entities/ 进行验证,原因是对于 该特定实体 它的值bar 没有索引,该网页的“索引”列中没有复选标记就是证明。
docs 声明
自动创建简单查询的索引,例如对单个属性的查询
所以我预计该类型的 所有 实体都会在该属性上具有索引,但显然这是不正确的。问题:
Q1:创建索引时,是否将其添加到在第一次使用该索引运行查询之前放置的实体? (或者索引是在第一次放置该类型的任何实体时创建的?)
Q2:如果没有,实体的哪些更改(如果有)会导致索引被添加到该属性中? (我尝试更改 bar 和 put 以外的其他属性,但这并没有导致实体被添加)
Q3:在index.yaml 中明确列出索引会改变这种行为吗?
Q4:有没有办法以编程方式确定实体是否在特定属性上具有索引?
Q5:(奖励)上面是否有任何谷歌文档?
谢谢
【问题讨论】:
标签: google-app-engine google-cloud-datastore google-cloud-platform