我使用Android Studio创建了Android项目及其后端AppEngine端点对应项.我有一个数据存储区,我正在使用Objectify.系统工作得很好,直到我在查询中添加了一个过滤器(仅显示特定的给定电子邮件).
Queryquery = ofy().load().type(Report.class).filter("email", user.getEmail()).order("email").order("-when").limit(limit);
这是POJO数据存储区实体:
@Entity public class Report { @Id Long id; String who; @Index Date when; String what; @Index String email; }
但是,当我尝试测试时,我从Google API Explorer收到此类错误:
com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found. The suggested index for this query is:
据我所知,我只需要创建一个复合索引,包括特定字段的电子邮件和时间,以及它们的特定排序方向.
但是,我找到的大多数文档都告诉我编辑datastore-indexes.xml
.
App Engine预定义实体的每个属性的简单索引.App Engine应用程序可以在名为datastore-indexes.xml的索引配置文件中定义更多自定义索引,该文件在应用程序的/ war/WEB-INF/appengine生成的目录中生成.
不幸的是,这个文件似乎并不存在于我的项目中.
是否有人熟悉使用Android Studio时改变这种情况的方法?
创建datastore-indexes.xml文件并将其放在/WEB-INF/
文件夹中.内容将如下所示: