我使用GAE和Java,使用Objectify进行DataStore访问。
最近我添加了一个通过两个属性过滤实体的查询,在开发服务器中它可以正常工作,但在生产中,查询失败,并显示消息,告知应该定义索引,并建议索引是什么。 所以我阅读了有关索引的更多信息,并在WEB-INF / datastore-indexes.xml中包含了所需的索引,并确保WAR根据需要包含该文件,但是我仍然得到与索引文件不同的错误。实际上在那里。
Entity1.java
@Entity
@Cache
class Entity1{
@Index private String property1;
@Index private String property2;
@Index @Parent private Ref<ParentEntity> parent;
/* setters and getters */
}
数据存储-indexes.xml
<?xml version="1.0" encoding="utf-8"?>
<datastore-indexes autoGenerate="true">
<datastore-index kind="Entity1" ancestor="true" source="manual">
<property name="property1" direction="asc"/>
<property name="property2" direction="asc"/>
</datastore-index>
</datastore-indexes>
答案 0 :(得分:1)
我的索引无效,直到我通过命令行使用gcloud
部署它们(对于PHP后端)。
我发现这行适用于Java,也许您应该尝试运行它并查看索引是否显示在DataStore&gt; Indexes页面中。
./appengine-java-sdk/bin/appcfg.sh update_indexes myapp/war