Ho problemi con gli indici dei motori di app di Google. Quando eseguo la mia app tramite GoogleAppEngineLauncher, l'app funziona correttamente. Quando si distribuisce l'applicazione, ottengo il seguente errore:Errore Google App Engine: NeedIndexError: nessun indice corrispondente trovato
NeedIndexError: no matching index found.
The suggested index for this query is:
- kind: Bar
ancestor: yes
properties:
- name: rating
direction: desc
L'errore viene generato dopo questa riga di codice:
bars = bar_query.fetch(10)
Prima della riga di codice precedente, si legge:
bar_query = Bar.query(ancestor=guestbook_key(guestbook_name)).order(-Bar.rating)
Il mio file index.yaml contiene l'esatto indice "suggerito" sotto # AUTOGENERATED:
- kind: Bar
ancestor: yes
properties:
- name: rating
direction: desc
Mi manca forse qualcosa? Ho rimosso il file index.yaml e ho nuovamente distribuito l'app (tramite la riga di comando) e caricato un file in meno, quindi il file index.yaml è presente.
Tutto funziona correttamente localmente. Sto lavorando sull'ultimo Mac OSx. Il comando utilizzato per la distribuzione era:
appcfg.py -A app-name --oauth2 update app
Il datastore ho implementato è vagamente basato sul libro degli ospiti applicazione tutorial.
Qualsiasi aiuto sarebbe molto apprezzato.
EDIT:
mio ndb.Model è definito come segue:
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)
Ciao @Andrei, grazie, ci sono stato. Dice: "Non hai creato indici per questa applicazione: alcuni tipi di query richiedono la creazione di un indice, puoi gestire gli indici in un file index.yaml". Su altri forum ho letto che quando si usa index.yaml non dice mai "serving". – ISJ
Ho letto da qualche parte quanto segue: "L'indice che hai inserito nel tuo datastore-index.xml è un indice di proprietà singola, il che significa che è costruito automaticamente da Datastore e non verrà visualizzato nella tua console." – ISJ
Hai ragione: non è necessario definire singoli indici di proprietà che non verranno visualizzati nella pagina dell'indice. Ho dimenticato di chiedere l'ovvio: questa proprietà è indicizzata? –