Java 谷歌应用引擎留言簿示例索引不工作
我已经查看了留言簿的谷歌代码示例。它在本地构建,我可以将它部署到我的本地机器上,并且运行正常 当我尝试将其部署到Google App Engine时,会在日志中发生以下情况:Java 谷歌应用引擎留言簿示例索引不工作,java,maven,google-app-engine,Java,Maven,Google App Engine,我已经查看了留言簿的谷歌代码示例。它在本地构建,我可以将它部署到我的本地机器上,并且运行正常 当我尝试将其部署到Google App Engine时,会在日志中发生以下情况: com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found. recommended index is: - kind: Greeting ancestor: yes properties: -
com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found. recommended index is:
- kind: Greeting
ancestor: yes
properties:
- name: date
direction: desc
The suggested index for this query is:
<datastore-index kind="Greeting" ancestor="true" source="manual">
<property name="date" direction="desc"/>
</datastore-index>
at com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:56)
com.google.appengine.api.datastore.DatastoreNeedIndexException:未找到匹配的索引。建议的指数为:
-种类:问候语
祖先:是的
特性:
-姓名:日期
方向:desc
此查询的建议索引为:
位于com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:56)
在谷歌搜索了一下之后,我发现有人提出了以下两点之一。1) 在YAML中进行一些编辑。2) 手动修改目标并添加一些索引配置
我希望避免这两种情况,因为1)在最新的留言簿代码示例中没有YAML,2)我更喜欢自动化构建,而不是每次需要部署时手动破解
在使用mvn appengine:deploy时,有什么方法可以实现这一点吗
这是我一直在使用的指南:根据应用程序的特定用途手动修改数据存储索引配置文件是完全正常的(有时甚至是必需的)。示例代码中缺少此类文件的原因可能是它通常是自动生成的。发件人:
重要提示:有关索引和查询的深入讨论,请参阅本文
App Engine为实体的每个属性预定义了一个简单索引。一
appengine应用程序可以在命名的数据存储index.xml
中定义更多自定义索引,这是
在应用程序的/war/WEB-INF/appengine-generated
目录开发服务器会自动将建议添加到
当遇到无法使用执行的查询时,此文件将被删除
现有索引。您可以通过编辑文件手动调整索引
在上传应用程序之前
您还应该注意,数据存储索引配置是应用程序级配置,由所有应用程序的服务/模块共享,即使它们不是用Java编写的。这就是为什么您可能会看到对这两种语言的引用(仅限java,消息中建议的索引格式适用于此文件)和(所有语言)
另一个重要的注意事项是,索引配置可以独立于服务/模块代码进行部署,包括使用maven。发件人:
appengine:deployIndex
将index.yaml配置文件部署到App Engine
因此,只需使用此目标更新数据存储索引配置