Обратные ссылки Appengine - нужен составной индекс? - PullRequest
2 голосов
/ 11 июня 2010

У меня есть запрос, который совсем недавно начинает выдавать:

"The built-in indices are not efficient enough for this query and your data. Please add a composite index for this query."

Я проверил строку, в которую выдается это исключение, и проблемный запрос:

Это буквально операция с одним фильтром, использующая встроенные обратные ссылки appengine.Понятия не имею, как оптимизировать этот запрос ... у кого-нибудь есть предложения?Я попытался добавить этот индекс:

 - kind: Vote
   properties:
   - name: direction
     direction: desc

 - kind: Vote
   properties:
   - name: direction

И я получил сообщение (очевидно), что это ненужный индекс.

Спасибо за вашу помощь заранее.

Ответы [ 2 ]

3 голосов
/ 11 июня 2010

Если вы выполняете все соответствующие запросы в своем локальном SDK, он должен сгенерировать все необходимые индексы (в index.yaml), и рекомендуемая политика - не редактировать index.yaml самостоятельно, а позволить локальному SDK сделать это за вас.Если SDK не генерирует все необходимые индексы, конечно, до тех пор, пока вы выполняете все соответствующие пути кода в своем локальном тестировании !, вы должны открыть для него ошибку в трекере App Engine здесь (после проверкичто, конечно, нет сообщения об ошибке для этой проблемы).

3 голосов
/ 11 июня 2010

Обратные ссылки на самом деле просто создают запрос, который фильтруется по свойству ссылки, поэтому добавив еще один фильтр, вы получите запрос с двумя фильтрами.

Ваш композитный индекс будет выглядеть примерно так:

- kind: Vote
  properties:
  - name: your_reference_property_name
  - name: direction
    direction: desc
...