Próbuję kwerendy magazynu danych, a moje zapytania wygląda następująco:Problemy z zapytaniem GQL, Google Datastore. Błąd z wielu warunków i powyżej i poniżej operatorów
SELECT *
FROM mydb
WHERE Latitude = "18.1" AND Number > "1"
To nie działa choć. Otrzymuję ten błąd w oknie zapytań Datastore:
GQL query error: Your Datastore does not have the composite index (developer-supplied) required for this query.
a to błąd, gdy uruchomię mój kod:
no matching index found. recommended index is:\n- kind: mydb\n properties:\n - name: Location\n - name: Number\n
proste prośby, jak działać:
SELECT *
FROM mydb
WHERE Number > "1" AND Number < "5"
ja korzystającego tylko jedna kolumna tutaj może dlatego?
Nie,
Potem próbowałem żądania takiego:
SELECT *
FROM mydb
WHERE Latitude = "18.1" AND Number = "1"
To działało.
Starałem się patrzeć rozwiązania i natknąłem tej strony: https://cloud.google.com/datastore/docs/tools/indexconfig#Datastore_About_index_yaml
Po przejściu tej stronie zebrałem że muszę plik index.yaml gdzieś. Ma wejść do folderu o nazwie WEB-INF. Ale nie mam tego folderu.
Jest to mały urywek mojego kodu:
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);
Gdzie znajduje się plik 'appengine-web.xml'? – Nicholas
@Nicholas Nie mam go nigdzie, mój program może wdrożyć i uruchomić bez niego. –
Czy możesz opublikować pełną strukturę katalogów swojej aplikacji? – Nicholas