默认情况下,为基于ndb的模型类中的所有字段启用索引。
如果我更改字段的索引定义并重新部署应用程序,该怎么办?它会根据模型类的更改为该字段删除索引或重新创建该索引吗?
还是就像实体关系一旦定义就无法更改。我之所以这样问是因为,我现在不确定在最终应用程序中需要索引多少个字段?
您可以随时更改实体对象的定义,重要的是,在放置put()时是否将属性设置为索引。假设我插入了一堆带有“名称”属性的对象,这些对象没有索引。稍后,我为这些实体上的未来put()添加索引。我所有的实体仍将保留在数据存储区中,只有被索引的实体才是可查询的。当我从本地语言模型属性(例如,使用objectify的java @Entity类)中删除索引,然后执行put()时,将应用类似的逻辑。
这就是拥有无模式数据存储区的含义。它们可以具有所有不同的属性组合,并且可以为每个索引打开/关闭。真正将这些实体绑定在一起的唯一一件事就是它们的“种类”,它由您使用的框架设置为类名,或者如果您使用的是真正的低级API,则手动设置。
在此处阅读更多内容,以更好地理解索引在无模式数据存储中的工作方式。如果您阅读了所链接的部分,这将完全回答您的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句