rus*_*042 9 indexing google-app-engine google-cloud-datastore
我的模型中有许多属性,我目前不需要编入索引,但可以想象我可能希望将来在某个未知点编入索引.如果我现在明确设置indexed=False了一个属性但是改变了我的想法,那么Datastore会在那时自动重建整个索引,包括以前写入的数据吗?采取这种方法还有其他影响吗?
Pat*_*llo 13
不,将indexed = True更改为indexed = False(反之亦然)只会影响在该点之后写入数据存储区的实体.以下是谈论它和相关段落的文档:
同样,将属性从索引更改为未索引仅会影响随后写入数据存储区的实体.在更新或删除实体之前,具有该属性的任何现有实体的索引条目将继续存在.为避免不必要的结果,您必须清除所有通过(现在未编入索引)属性进行筛选或排序的查询的代码.
如果您稍后决定要开始建立索引属性,则必须浏览实体并将其重新放入数据存储区.
但请注意,将属性从未索引更改为索引不会影响在更改之前可能已创建的任何现有实体.对属性进行查询过滤将不会返回此类现有实体,因为实体在创建时未写入查询索引.要使实体可以通过将来的查询访问,您必须将它们重写到数据存储区,以便将它们输入到适当的索引中.也就是说,您必须为每个这样的现有实体执行以下操作:
从数据存储中检索(获取)实体.
将实体写回(放入)数据存储区.
| 归档时间: |
|
| 查看次数: |
749 次 |
| 最近记录: |