Разъяснение по составным индексам с предком и одним свойством - PullRequest
0 голосов
/ 09 сентября 2018

Мне нужно уточнить, нужен ли мне составной индекс для запросов предков с одним свойством.

1) Нужен ли составной индекс, когда есть одно свойство с восходящим направлением?

<datastore-index kind="Entity" ancestor="true" source="manual">
    <property name="Property" direction="asc"/>
</datastore-index>

2) Как насчет того, когда свойство убывает?

<datastore-index kind="Entity" ancestor="true" source="manual">
    <property name="Property" direction="desc"/>
</datastore-index>

Я спрашиваю, потому что запросы case (1) работают без составного индекса, а запросы case (2) не из моих тестов. Не уверен, что происходит что-то странное. Может ли направление собственности в приведенных выше примерах быть виновником?

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Использует ли ваш запрос фильтр неравенства (больше / меньше чем ... и т.д ...)? Потому что вам понадобится составной индекс для любых «запросов с фильтрами предков и неравенств»

0 голосов
/ 09 сентября 2018

I думаю, в этом случае требуется составной индекс, поскольку спецификация самого предка фактически будет считаться спецификацией дополнительного свойства, а результат не может быть обработан индексами по умолчанию для одного свойства хранилища данных как в этих случаях:

  • запрос предка без указания свойства
  • запрос без предков с одной спецификацией свойства

Я полагаю, что мое подозрение подтверждается принятием этого связанного ответа: Исключить ошибку DatastoreNeedIndexException при заказе

...