我在使用Google的App引擎索引时遇到问题。当通过GoogleAppEngineLauncher运行我的应用时,该应用工作正常。当部署应用程序,我得到以下错误:Google App引擎错误:NeedIndexError:找不到匹配索引
NeedIndexError: no matching index found.
The suggested index for this query is:
- kind: Bar
ancestor: yes
properties:
- name: rating
direction: desc
这行代码后生成该错误:
bars = bar_query.fetch(10)
上面的代码行之前,有这么一句话:
bar_query = Bar.query(ancestor=guestbook_key(guestbook_name)).order(-Bar.rating)
我index.yaml中文件包含的具体 “建议” 下面#指数自动生成:
- kind: Bar
ancestor: yes
properties:
- name: rating
direction: desc
我可能错过了什么吗?我删除了index.yaml文件并再次部署应用程序(通过命令行),并且少了一个文件被上传 - 所以index.yaml文件就在那里。
一切工作正常本地。我正在研究最新的Mac OSx。用于部署的命令是:
appcfg.py -A app-name --oauth2 update app
我实施的数据存储松散地基于留言板教程应用程序。
任何帮助将不胜感激。
编辑:
我ndb.Model定义如下:
class Bar(ndb.Model):
content = ndb.StringProperty(indexed=False)
lat = ndb.FloatProperty(indexed=False)
lon = ndb.FloatProperty(indexed=False)
rating = ndb.IntegerProperty(indexed=True)
url = ndb.TextProperty(indexed=False)
嗨@Andrei,谢谢,我一直在那里。它说:“你还没有为这个应用程序创建索引,有些类型的查询需要建立索引,你可以在index.yaml文件中管理索引。”在其他论坛上我读到,使用index.yaml时,它从不说“服务”。 – ISJ
我在某处读到以下内容:“您在datastore-index.xml中放入的索引是单个属性索引,这意味着它由Datastore自动构建,并且不会显示在控制台中。” – ISJ
你是对的 - 单个属性索引不必定义,它们不会显示在索引页上。我忘了问显而易见:这是属性索引? –