Referência do datastore-indexes.xml

O App Engine predefine um índice simples em cada propriedade de uma entidade. Um aplicativo do App Engine pode definir outros índices personalizados em um arquivo de configuração de índice chamado datastore-indexes.xml. O servidor de desenvolvimento pode gerar a configuração de índice necessária ao aplicativo ao executar essas consultas enquanto você estiver testando o aplicativo. Para ajustar os índices manualmente, edite o arquivo datastore-indexes.xml antes de fazer upload do aplicativo. Consulte Como configurar índices do Datastore para informações sobre como implantar e gerenciar configurações de índice.

Exemplo

Veja a seguir um exemplo de um arquivo datastore-indexes.xml:

<?xml version="1.0" encoding="utf-8"?>
<datastore-indexes
  autoGenerate="true">
    <datastore-index kind="Employee" ancestor="false">
        <property name="lastName" direction="asc" />
        <property name="hireDate" direction="desc" />
    </datastore-index>
    <datastore-index kind="Project" ancestor="false">
        <property name="dueDate" direction="asc" />
        <property name="cost" direction="desc" />
    </datastore-index>
</datastore-indexes>

Sintaxe

O elemento <datastore-index> pode conter os seguintes elementos:

Elemento Descrição
<kind> Obrigatório. O tipo da entidade da consulta.
<properties>

Uma lista das propriedades que serão incluídas como colunas do índice, na ordem em que serão classificadas: primeiro as propriedades usadas em filtros de igualdade, seguidas de propriedades usadas em filtros de desigualdade e, depois, as ordens de classificação e direções.

Cada elemento dessa lista tem os seguintes elementos:

<name>
O nome da propriedade no armazenamento de dados.
<direction>
A direção da classificação, asc para crescente ou desc para decrescente. Isso só é necessário nas propriedades usadas nas ordens de classificação da consulta e precisa corresponder à direção usada pela consulta. O padrão é asc.
<ancestor> Precisará ser yes se a consulta tiver uma cláusula ancestral (). O padrão é no.

Índices automáticos e manuais

O processo de determinação manual dos índices necessários para as consultas do aplicativo pode ser trabalhoso e estar sujeito a erros. Felizmente, o servidor de desenvolvimento pode determinar a configuração de índice para você. Para usar a configuração de índices automáticos, adicione o atributo autoGenerate="true" ao elemento WEB-INF/datastore-indexes.xml do arquivo <datastore-indexes>. A configuração de índices automáticos também será usada se o aplicativo não tiver um arquivo datastore-indexes.xml.

Com a configuração de índices automáticos habilitada, o servidor de desenvolvimento mantém um arquivo chamado WEB-INF/appengine-generated/datastore-indexes-auto.xml no diretório war/ do seu aplicativo. Quando o aplicativo, em execução no servidor de desenvolvimento, tenta fazer uma consulta de armazenamento de dados em que não há índice correspondente em datastore-indexes.xml ou datastore-indexes-auto.xml, o servidor adiciona a configuração apropriada ao datastore-indexes-auto.xml.

Se a configuração de índices automáticos estiver ativada ao enviar seu aplicativo, o comando appcfg usará datastore-indexes.xml e datastore-indexes-auto.xml para determinar quais índices precisam ser criados na produção.

Se autoGenerate="false" estiver em seu datastore-indexes.xml, o servidor de desenvolvimento e AppCfg ignoram o conteúdo do datastore-indexes-auto.xml. Se o aplicativo em execução localmente fizer uma consulta com índice não especificado no datastore-indexes.xml, o servidor de desenvolvimento emitirá uma exceção, assim como o Datastore de produção faria.

De vez em quando, é recomendável mover a configuração de índices de datastore-indexes-auto.xml para datastore-indexes.xml, desativar a configuração automática do índice e testar seu aplicativo no servidor de desenvolvimento. Isso facilita a manutenção de índices sem a necessidade de gerenciar dois arquivos, além de garantir que seus testes reproduzam os erros causados por índices sem configuração.

Como implantar o arquivo de configuração de índice

O arquivo datastore-indexes.xml precisa residir no diretório /WEB-INF/ do serviço padrão.

Para implantar o arquivo de configuração de índices do armazenamento de dados sem alterar a versão de serviço atual, use o comando:

appcfg.sh update_indexes <application root path>

Excluir índices não utilizados

Quando você altera ou remove um índice da configuração do índice, o original não é excluído do App Engine automaticamente. Isso permite que você deixe uma versão mais antiga do aplicativo em execução enquanto novos índices são criados ou reverta para a versão mais antiga imediatamente se um problema for descoberto na nova versão.

Quando tiver certeza de que os índices antigos não são mais necessários, será possível excluí-los do App Engine da seguinte maneira:

./appengine-java-sdk/bin/appcfg.sh vacuum_indexes myapp/war
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Java 8