Mam problemy z indeksami Google App Engine. Gdy uruchomisz moją aplikację przez GoogleAppEngineLauncher, aplikacja działa poprawnie. Podczas wdrażania aplikacji, pojawia się następujący błąd:Błąd Google App Engine: NeedIndexError: nie znaleziono zgodnego indeksu
NeedIndexError: no matching index found.
The suggested index for this query is:
- kind: Bar
ancestor: yes
properties:
- name: rating
direction: desc
Błąd jest generowany po tej linii kodu:
bars = bar_query.fetch(10)
przed wyżej linii kodu, to brzmi:
bar_query = Bar.query(ancestor=guestbook_key(guestbook_name)).order(-Bar.rating)
Mój plik index.yaml zawiera dokładny "sugerowany" indeks poniżej # AUTOGENERACJA:
- kind: Bar
ancestor: yes
properties:
- name: rating
direction: desc
Czy może czegoś brakuje? Usunąłem plik index.yaml i ponownie wdrożyłem aplikację (za pośrednictwem wiersza poleceń) i przesłano jeden mniej plik - tak więc istnieje plik index.yaml.
Wszystko działa dobrze lokalnie. Pracuję nad najnowszym systemem Mac OSx. Komenda użyta do wdrożenia:
appcfg.py -A app-name --oauth2 update app
Baza danych, którą zaimplementowałem, jest luźno oparta na samouczku księgowym.
Każda pomoc zostanie bardzo doceniona.
EDIT:
My ndb.Model jest zdefiniowany następująco:
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)
Witam @Andrei, dzięki, byłem tam. Mówi: "Nie utworzono indeksów dla tej aplikacji. Niektóre typy zapytań wymagają zbudowania indeksu. Możesz zarządzać indeksami w pliku index.yaml." Na innych forach czytałem, że podczas korzystania z index.yaml nigdy nie mówi "służba". – ISJ
Przeczytałem gdzieś: "Indeks, który umieściłeś w swoim datastore-index.xml, jest pojedynczym indeksem właściwości, co oznacza, że jest on automatycznie budowany przez Datastore i nie pojawi się w twojej konsoli." – ISJ
Masz rację - indeksy pojedynczych nieruchomości nie muszą być zdefiniowane i nie będą wyświetlane na stronie indeksu. Zapomniałem zapytać o oczywiste: czy ta właściwość jest indeksowana? –