ich den Datenspeicher abzufragen, ich versuche, meine Abfrage sieht wie folgt aus:Probleme mit GQL-Abfrage, Google Datastore. Fehler mit mehreren Bedingungen und größer und kleiner als Operatoren
SELECT *
FROM mydb
WHERE Latitude = "18.1" AND Number > "1"
Es ist nicht jedoch nicht funktioniert. Ich erhalte diese Fehler in dem Datenspeicher-Suchfeld:
GQL query error: Your Datastore does not have the composite index (developer-supplied) required for this query.
Und diesen Fehler, wenn ich meinen Code ausführen:
no matching index found. recommended index is:\n- kind: mydb\n properties:\n - name: Location\n - name: Number\n
Einfache Anfragen wie diese Arbeit:
SELECT *
FROM mydb
WHERE Number > "1" AND Number < "5"
mir nur Zugriff auf eine einzelne Spalte hier vielleicht deshalb?
Nö,
Dann habe ich versucht, eine Anfrage wie folgt aus:
SELECT *
FROM mydb
WHERE Latitude = "18.1" AND Number = "1"
Das funktionierte.
Ich habe versucht, eine Lösung zu suchen, und ich auf dieser Seite kam: https://cloud.google.com/datastore/docs/tools/indexconfig#Datastore_About_index_yaml
Nachdem durch diese Seite zu gehen, habe ich gesammelt, dass ich irgendwo eine index.yaml Datei benötigen. Es soll in einen Ordner namens WEB-INF gehen. Aber ich habe diesen Ordner nicht.
Dies ist ein kleiner Ausschnitt aus meinem Code:
Query<Entity> query = Query
.gqlQueryBuilder(Query.ResultType.ENTITY,
"SELECT * FROM " + kind + " WHERE Location = @location AND Number <= @number")
.setBinding("number", "5").setBinding("location", "18.1").build();
QueryResults<Entity> results = datastore.run(query);
Wo befindet sich Ihre 'appengine-web.xml'? – Nicholas
@Nicholas Ich habe es nirgends, mein Programm kann ohne es bereitstellen und ausführen. –
Können Sie die vollständige Verzeichnisstruktur Ihrer Anwendung posten? – Nicholas