2017-09-19 10 views
1

에 대한 GQL 데이터 저장소에서 작동하지 않는 수정 에서 작동하지 않는 GQL에서 쿼리> 타임 스탬프평등 운영자는 여기에 PHP

 $query = $ds->query() 
      ->kind('Video') 
      ->filter('email', '=', $email) 
      ->filter('lat', '=', $lat) 
      ->filter('lng', '=', $lng) 
      ->filter('modified', '>', 1505807001); 

     $result = $ds->runQuery($query); 

더 큰 타임 스탬프보다가 생략되는 경우 쿼리가 확실히 작동입니다. 그렇지 않으면 작동하지 않습니다.

예외를 반환합니다. 발췌 부분은 다음과 같습니다.

{ 
    "error": { 
    "code": 400, 
    "message": "no matching index found. recommended index is:\n- kind: 
     Video\n propert (truncated...) 

이 문제에 대한 도움을 주시면 감사하겠습니다.

+0

작동하지 않는다면 무엇을 의미합니까? 그것은 오류? 잘못된 결과 집합을 반환합니까? 결과를 반환하지 않습니까? –

답변

2

쿼리에 대해 명시 적 합성 인덱스 (https://cloud.google.com/datastore/docs/concepts/indexes)를 추가해야합니다.

부등호가 없으면 Cloud Datastore는 내장 인덱스를 사용하여 쿼리를 수행 할 수 있지만 타임 스탬프가 같지 않으면 Cloud Datastore에서 쿼리를 수행 할 수 없습니다. & LG 전자는 지리적 포인트는 LAT, 당신은 아마 geohashing (http://hitching.net/2009/11/10/scalable-fast-accurate-geo-apps-using-google-app-engine-geohash-faultline-correction/) 같은 것을 사용하는 것이 좋습니다 경우, 즉석으로

indexes: 
- kind: Video 
    properties: 
    - name: email 
    direction: desc 
    - name: lat 
    direction: desc 
    - name: lng 
    direction: desc 
    - name: modified 
    direction: asc 

:

당신은 아마 같은 인덱스 정의를 할 것입니다.