我正在努力使用GAE留言板演示应用。我没有做任何修改。我让它在本地运行,但是当我部署它时,我收到以下错误:
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>
在本地运行时,在目标/ - SNAPSHOT / WEB-INF / appengine生成的目录中生成了datastore-indexes-auto.xml。该文件包含所需的索引描述:
<datastore-indexes>
<!-- Used 1 time in query history -->
<datastore-index kind="Greeting" ancestor="true">
<property name="date" direction="desc" />
</datastore-index>
</datastore-indexes>
但是,应用程序无论如何都会抛出错误。
我还尝试将其从自动生成的xml文件移动到手动xml(datastore-indexes.xml)文件。
当我通过mvn -e appengine:deploy
部署时,我没有收到任何错误或警告:
...
[INFO] GCLOUD: Jan 02, 2017 8:01:14 PM com.google.apphosting.utils.config.IndexesXmlReader readConfigXml
[INFO] GCLOUD: INFO: Successfully processed /Users/stephanhofmann/Projects/mvntestapp/target/mvntestapp-1.0-SNAPSHOT/WEB-INF/datastore-indexes.xml
[INFO] GCLOUD: Jan 02, 2017 8:01:14 PM com.google.apphosting.utils.config.IndexesXmlReader readConfigXml
[INFO] GCLOUD: INFO: Successfully processed /Users/stephanhofmann/Projects/mvntestapp/target/mvntestapp-1.0-SNAPSHOT/WEB-INF/appengine-generated/datastore-indexes-auto.xml
...
无论如何,当我在Datastore&gt;下查看时,Google Developer Console不会显示任何“复合”索引。指标。我等了30多分钟(并且没有数据,所以索引应该很快)。
不确定它是否是复合索引并且应该显示在这里,但是应用程序缺少索引并且我被卡住了。
非常感谢任何帮助。
答案 0 :(得分:2)
使用mvn appengine:deploy
时遇到了同样的问题。然后我意识到我必须明确地使用mvn appengine:deployIndex
来生成索引。希望能帮助他人。
答案 1 :(得分:0)
运行: gcloud app deploy /Users/stephanhofmann/Projects/mvntestapp/target/mvntestapp-1.0-SNAPSHOT/index.yaml
在终端窗口中将定义索引。