tôi đang cố gắng để truy vấn Datastore, và truy vấn của tôi trông như thế này:Sự cố với truy vấn GQL, Google Datastore. Lỗi với nhiều điều kiện và lớn hơn và ít hơn các nhà khai thác
SELECT *
FROM mydb
WHERE Latitude = "18.1" AND Number > "1"
Nó không làm việc mặc dù. Tôi nhận được lỗi này trong hộp truy vấn Datastore:
GQL query error: Your Datastore does not have the composite index (developer-supplied) required for this query.
Và lỗi này khi tôi chạy mã của tôi:
no matching index found. recommended index is:\n- kind: mydb\n properties:\n - name: Location\n - name: Number\n
yêu cầu đơn giản như công việc này:
SELECT *
FROM mydb
WHERE Number > "1" AND Number < "5"
Tôi chỉ truy cập một cột duy nhất ở đây có lẽ đó là lý do tại sao?
Nope,
Sau đó, tôi đã cố gắng một yêu cầu như thế này:
SELECT *
FROM mydb
WHERE Latitude = "18.1" AND Number = "1"
này làm việc.
tôi đã cố gắng để tìm kiếm một giải pháp, và tôi đã xem qua trang này: https://cloud.google.com/datastore/docs/tools/indexconfig#Datastore_About_index_yaml
Sau khi đi qua trang đó, tôi thu thập được rằng tôi cần một tập tin index.yaml nơi nào đó. Nó có nghĩa vụ phải đi trong một thư mục gọi là WEB-INF. Nhưng tôi không có thư mục này.
Đây là một đoạn nhỏ của mã của tôi:
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);
'appengine-web.xml' của bạn nằm ở đâu? – Nicholas
@Nicholas Tôi không có ở đâu cả, chương trình của tôi có thể triển khai và chạy mà không có nó. –
Bạn có thể đăng cấu trúc thư mục đầy đủ của ứng dụng của mình không? – Nicholas