2017-12-05 9 views
0

모든 질문을 거치고 모든 색인이 독립적으로 작동하지만 두 번째로 주문을 추가하려고하면 일치하는 색인이 없습니다. . ' 오류ORDER BY를 사용하면 '일치하는 색인이 없습니다'라는 메시지가 표시됩니다.

이 내가 때까지 나는 경우 아무것도 작동하지 않는에서 ORDER BY를 추가

SELECT * FROM upload WHERE flavor="whatever" AND public=true 

모든 쿼리가 작동

indexes: 
- kind: gallery-public 
    properties: 
    - name: public 
    - name: flavor 
    - name: created 
    direction : desc 
- kind: get-selfies 
    properties: 
    - name: flavor 
    - name: public 
    - name: created 
    direction: desc 
- kind: get-selfies 
    properties: 
    - name: flavor 
    - name: created 
    direction: asc 
- kind: get-all 
    properties: 
    - name: public 
    - name: created 
    direction: desc 
- kind: get-all-old 
    properties: 
    - name: public 
    - name: created 
    direction: asc 
- kind: get-all-two 
    properties: 
    - name: flavor 
    - name: created 
    direction: desc 

을 사용하고 인덱스입니다. 예를 들면 : 나는 그 모든 인덱스를 만들었습니다

SELECT * FROM upload WHERE public=true ORDER BY created DESC 

, 명시 적으로 설명을 정의 끝에 주문 경기장을 떠났습니다, 나는 여전히 동작하지 않습니다. 내가 뭘 놓치고 있니?

답변

1

당신은 종류 upload에 대한 인덱스를 추가해야합니다 : 그것은 재산 publicbuilt-in single property index를 사용할 수 있기 때문에

- kind: upload 
    properties: 
    - name: public 
    - name: created 
    direction: desc 

는 참고 ORDER BY없는 쿼리가 성공합니다. ORDER BY을 추가하면 publiccreated 속성에 복합 색인이 있어야합니다.

+0

예. 이것이 문제였습니다. 오늘 아침에 해결 했어. 문서에서 인덱스의 종류를 쿼리에 사용할 수 있는지 여부가 명확하지 않으므로 get-all으로 인덱스를 만들면 "get all from"을 얻을 수 있습니다 - 항상 엔터티 종류 여야한다고 가정하고있었습니다. . – MNJam3

0

public, createdflavor보다 많은 쿼리가 반환됩니다. 대신

: 그런 경우가 아니라면

SELECT public,created,flavor FROM upload WHERE public=true ORDER BY created DESC 

우리에게 SELECT *에서 샘플 기록을 지정합니다.

쿼리에서 반환하는 모든 속성 (필드)도 사용자 지정 인덱스의 일부 여야합니다.

+0

아, 토니가 맞았 어. – rmrf