2017-10-30 9 views
0

Azure 포털 "Query Explorer"를 통해 간단한 쿼리를 수행합니다.Azure CosmosDb : 주문한 항목에 범위 인덱스가 필요합니다

주문 별 항목이 해당 인덱스 경로를 정의 할 수있는 범위 인덱스가 필요합니다

SELECT * FROM c 
WHERE c.DataType = 'Fruit' 
AND c.ExperimentIdentifier = 'prod' 
AND c.Param = 'banana' 
AND Contains(c.SampleDateTime, '20171029') 
ORDER BY c.SampleDateTime DESC 

는 그러나, 나는 예외를 얻을 :

여기 내 쿼리입니다.

오류와 관련하여 도움이되는 링크가 없으며 오류 메시지에서 꼬리를 만들 수 없습니다.

내 쿼리가 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

P._ts 속성은 레코드를 삽입 할 때까지 주문하지 않으므로 나에게 좋지 않습니다.

+0

https://docs.microsoft.com/en-us/azure/cosmos-db/ :

기본적으로, 당신은 다음과 같이 할 컬렉션의 인덱싱 정책을 업데이트해야 할 것 working-with-dates # indexing-datetimes-for-range-queries –

답변

2

ORDER BY는 색인에서 직접 제공되므로 범위 별 색인이 필요합니다 (해시 색인 생성과 반대).

숫자와 문자열 모두에 대해 정렬 기준으로 만 항목을 인덱싱 할 수 있지만 범위에 대한 정밀도 -1로 모든 경로를 인덱싱하는 것이 좋습니다.

{ 
     "automatic": true, 
     "indexingMode": "consistent", 
     "includedPaths": [ 
      { 
       "path": "/", 
       "indexes": [ 
        { "kind": "Range", "dataType": "Number", "precision": -1 }, 
        { "kind": "Range", "dataType": "String", "precision": -1 } 
       ] 
      } 
     ] 
    }