Google app engine 如何在Google数据存储中添加复合索引?

Google app engine 如何在Google数据存储中添加复合索引?,google-app-engine,indexing,google-cloud-datastore,Google App Engine,Indexing,Google Cloud Datastore,我现在正在使用谷歌数据存储作为我公司的数据库。 今天,我制作了一个索引,它成功地列在了“索引”中。 但我制作的索引的大小和实体都是空的 谷歌数据存储的文档称该索引是自动生成的,但事实并非如此 是否有任何命令或操作来生成索引 下图是一个屏幕截图 上面的是新的。下面的一个已被使用 事实上,现有实体不会自动编制索引。您必须加载并保存所有旧实体(不带索引),以便为这些实体创建必要的索引 但是,请注意,将属性从未索引更改为已索引并不需要 不影响可能在本协议生效之前创建的任何现有实体 改变对属性进行筛选的查

我现在正在使用谷歌数据存储作为我公司的数据库。 今天,我制作了一个索引,它成功地列在了“索引”中。 但我制作的索引的大小和实体都是空的

谷歌数据存储的文档称该索引是自动生成的,但事实并非如此

是否有任何命令或操作来生成索引

下图是一个屏幕截图

上面的是新的。下面的一个已被使用


事实上,现有实体不会自动编制索引。您必须加载并保存所有旧实体(不带索引),以便为这些实体创建必要的索引

但是,请注意,将属性从未索引更改为已索引并不需要 不影响可能在本协议生效之前创建的任何现有实体 改变对属性进行筛选的查询将不会返回这样的结果 现有实体,因为这些实体未写入查询的 在创建它们时创建索引。使实体可以通过 在将来的查询中,必须将它们重写到数据存储中,以便 将输入相应的索引中。也就是说,你必须做到 各现有实体的以下情况:

从数据存储中检索(获取)实体。写入(放置)实体 返回数据存储。类似地,将属性从索引更改为 未索引仅影响随后写入数据存储的实体。 具有该属性的任何现有实体的索引项将 继续存在,直到更新或删除实体。避 不需要的结果,您必须清除筛选的所有查询的代码 或按(现在未索引)属性排序。()

请注意,文档中并没有明确说明组合索引的相同之处。部署新的复合索引时,索引将在开发人员控制台中显示为“building”,直到达到“service”状态。不确定它到底在那里构建什么,我通常会重新保存我的所有实体,并且一切都正常工作

自动生成的是一个关键字,它告诉您是手动创建了此索引,还是在进行需要此索引的查询时由开发人员服务器创建的。这与为实体创建索引的方式和时间无关

元素有一个自动生成属性 控制是否应将此文件与 自动生成索引配置。请参见使用自动索引 配置如下。()


当您创建了一个新索引,并且希望为所有现有实体创建此索引时,我建议您创建一个游标查询来处理此问题。通常我在管理后端公开这个查询,并让查询运行直到不再有结果为止。为什么要揭露这件事?如果您有许多实体,此作业在前端的运行时间可能超过允许的60秒,在后端的运行时间可能超过允许的10分钟。通过公开这一点,我可以使用前端实例时间,而不必担心时间限制。

您好,欢迎来到StackOverflow,我对您的问题进行了一些编辑,将图像直接引入问题,并清除了一些拼写。如果你觉得我不公平地改变了你文章的意思,请回复此评论并用@Magisch回复我谢谢你的好意。你所做的正是我想要的。:)