Избегать индекса по умолчанию, но хранить явно определенный индекс в AppEngine? - PullRequest
2 голосов
/ 26 января 2012

У меня есть некоторые свойства, на которые ссылаются только в запросах, которые требуют составных индексов. AppEngine записывает все индексированные свойства в свои собственные специальные индексы, что требует 2 дополнительных операции записи для каждого свойства.

Есть ли способ указать, что свойство НЕ должно индексироваться в своем собственном индексе, но все же использоваться для моего составного индекса?

Например, моя сущность может быть человеком со свойствами name и group. Единственный запрос в моем коде - select * from Person where group = <group> and name > <name>, поэтому единственный индекс, который мне действительно нужен, - это возрастание группы и возрастание имени. Но прямо сейчас AppEngine также создает индекс для name и индекс для group, который утраивает число операций записи, необходимых для записи каждой сущности!

Из документации видно, как вообще запретить использование свойства для индексации, но я хочу отключить индексирование только для нескольких индексов (по умолчанию).

1 Ответ

2 голосов
/ 26 января 2012

Из того, что я понимаю в настоящее время, вы можете либо отключить индексирование для свойства все вместе (которое включает в себя составные индексы), либо вы застряли с наличием всех индексов (автоматические индексы + ваши составные индексы из index.yaml).

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

...