Políticas de indexação no Azure Cosmos DBIndexing policies in Azure Cosmos DB

Em Azure Cosmos DB, cada recipiente tem uma política de indexação que dita como os itens do contentor devem ser indexados.In Azure Cosmos DB, every container has an indexing policy that dictates how the container's items should be indexed. A política de indexação padrão para os recipientes recém-criados indexa cada propriedade de cada item, aplicando índices de gama para qualquer cadeia ou número, e índices espaciais para qualquer objeto GeoJSON do tipo Point.The default indexing policy for newly created containers indexes every property of every item, enforcing range indexes for any string or number, and spatial indexes for any GeoJSON object of type Point. Isto permite-lhe obter um desempenho de consulta elevada sem ter que pensar em indexar e gestão de índices antecipadamente.This allows you to get high query performance without having to think about indexing and index management upfront.

Em algumas situações, poderá querer substituir este comportamento automático para se adequar melhor aos requisitos.In some situations, you may want to override this automatic behavior to better suit your requirements. Pode personalizar a política de indexação de um recipiente definindo o seu modo de indexação, e incluir ou excluir caminhos de propriedade.You can customize a container's indexing policy by setting its indexing mode, and include or exclude property paths.

Nota

O método de atualização das políticas de indexação descritas neste artigo aplica-se apenas à API SQL (Core) da Azure Cosmos DB.The method of updating indexing policies described in this article only applies to Azure Cosmos DB's SQL (Core) API.

Modo de indexaçãoIndexing mode

AZure Cosmos DB suporta dois modos de indexação:Azure Cosmos DB supports two indexing modes:

  • Consistente: O índice é atualizado sincronizadamente à medida que cria, atualiza ou apaga itens.Consistent: The index is updated synchronously as you create, update or delete items. Isto significa que a consistência das suas consultas de leitura será a consistência configurada para a conta.This means that the consistency of your read queries will be the consistency configured for the account.
  • Nenhum: A indexação é desativada no recipiente.None: Indexing is disabled on the container. Isto é comumente usado quando um recipiente é usado como uma loja de valor-chave pura sem a necessidade de índices secundários.This is commonly used when a container is used as a pure key-value store without the need for secondary indexes. Também pode ser usado para melhorar o desempenho das operações a granel.It can also be used to improve the performance of bulk operations. Após a conclusão das operações a granel, o modo de índice pode ser definido como Consistente e depois monitorizado utilizando o IndexTransformationProgress até estar concluído.After the bulk operations are complete, the index mode can be set to Consistent and then monitored using the IndexTransformationProgress until complete.

Nota

AZure Cosmos DB também suporta um modo de indexação preguiçoso.Azure Cosmos DB also supports a Lazy indexing mode. A indexação preguiçosa executa atualizações ao índice a um nível de prioridade muito inferior quando o motor não está a fazer qualquer outro trabalho.Lazy indexing performs updates to the index at a much lower priority level when the engine is not doing any other work. Isto pode resultar em resultados de consulta inconsistentes ou incompletos.This can result in inconsistent or incomplete query results. Se planeia consultar um recipiente Cosmos, não deve selecionar uma indexação preguiçosa.If you plan to query a Cosmos container, you should not select lazy indexing. Em junho de 2020, introduzimos uma alteração que já não permite definir novos contentores para o modo de indexação preguiçoso.In June 2020, we introduced a change that no longer allows new containers to be set to Lazy indexing mode. Se a sua conta DB Azure Cosmos já tiver pelo menos um recipiente com indexação preguiçosa, esta conta está automaticamente isenta da alteração.If your Azure Cosmos DB account already contains at least one container with lazy indexing, this account is automatically exempt from the change. Também pode solicitar uma isenção contactando o suporte da Azure.You can also request an exemption by contacting Azure support.

Por predefinição, a política de indexação está definida para automatic .By default, indexing policy is set to automatic. É conseguido colocando a automatic propriedade na política de indexação para true .It's achieved by setting the automatic property in the indexing policy to true. Configurar esta propriedade para true permitir que a Azure CosmosDB indexe automaticamente os documentos à medida que estão escritos.Setting this property to true allows Azure CosmosDB to automatically index documents as they are written.

Incluindo e excluindo caminhos imobiliáriosIncluding and excluding property paths

Uma política de indexação personalizada pode especificar caminhos de propriedade que são explicitamente incluídos ou excluídos da indexação.A custom indexing policy can specify property paths that are explicitly included or excluded from indexing. Ao otimizar o número de caminhos indexados, pode baixar a quantidade de armazenamento utilizada pelo seu recipiente e melhorar a latência das operações de escrita.By optimizing the number of paths that are indexed, you can lower the amount of storage used by your container and improve the latency of write operations. Estes caminhos são definidos seguindo o método descrito na secção de visão geral de indexação com as seguintes adições:These paths are defined following the method described in the indexing overview section with the following additions:

  • um caminho que conduz a um valor escalar (string ou número) termina com/?a path leading to a scalar value (string or number) ends with /?
  • os elementos de uma matriz são endereçados em conjunto através da /[] notação (em vez /0 de, /1 etc.)elements from an array are addressed together through the /[] notation (instead of /0, /1 etc.)
  • o /* wildcard pode ser usado para combinar com quaisquer elementos abaixo do nóthe /* wildcard can be used to match any elements below the node

Tomando o mesmo exemplo novamente:Taking the same example again:

    {
        "locations": [
            { "country": "Germany", "city": "Berlin" },
            { "country": "France", "city": "Paris" }
        ],
        "headquarters": { "country": "Belgium", "employees": 250 }
        "exports": [
            { "city": "Moscow" },
            { "city": "Athens" }
        ]
    }
  • o headquarters caminho é employees``/headquarters/employees/?the headquarters's employees path is /headquarters/employees/?

  • o locations country caminho é/locations/[]/country/?the locations' country path is /locations/[]/country/?

  • o caminho para qualquer coisa sob headquarters é/headquarters/*the path to anything under headquarters is /headquarters/*

Por exemplo, podemos incluir o /headquarters/employees/? caminho.For example, we could include the /headquarters/employees/? path. Este caminho garantiria que indexamos a propriedade dos colaboradores, mas não indexariamos json adicional aninhado dentro desta propriedade.This path would ensure that we index the employees property but would not index additional nested JSON within this property.

Incluir/excluir estratégiaInclude/exclude strategy

Qualquer política de indexação tem de incluir o caminho da raiz /* como um caminho incluído ou um caminho excluído.Any indexing policy has to include the root path /* as either an included or an excluded path.

  • Inclua o caminho da raiz para excluir seletivamente caminhos que não precisam de ser indexados.Include the root path to selectively exclude paths that don't need to be indexed. Esta é a abordagem recomendada pois permite que a Azure Cosmos DB indexe proativamente qualquer nova propriedade que possa ser adicionada ao seu modelo.This is the recommended approach as it lets Azure Cosmos DB proactively index any new property that may be added to your model.

  • Excluir o caminho da raiz para incluir seletivamente caminhos que precisam de ser indexados.Exclude the root path to selectively include paths that need to be indexed.

  • Para caminhos com caracteres regulares que incluem: caracteres alfanuméricos e _ (sublinhado), não é preciso escapar da corda do caminho em torno de citações duplas (por exemplo, "/caminho/?").For paths with regular characters that include: alphanumeric characters and _ (underscore), you don't have to escape the path string around double quotes (for example, "/path/?"). Para caminhos com outros caracteres especiais, é necessário escapar da corda do caminho em torno de citações duplas (por exemplo, "/ " caminho-abc " /?").For paths with other special characters, you need to escape the path string around double quotes (for example, "/"path-abc"/?"). Se espera personagens especiais no seu caminho, pode escapar de todos os caminhos por segurança.If you expect special characters in your path, you can escape every path for safety. Funcionalmente, não faz diferença se escapares de todos os caminhos vs apenas aqueles que têm personagens especiais.Functionally it doesn't make any difference if you escape every path Vs just the ones that have special characters.

  • A propriedade do sistema _etag está excluída da indexação por defeito, a menos que o etag seja adicionado à trajetória incluída para a indexação.The system property _etag is excluded from indexing by default, unless the etag is added to the included path for indexing.

  • Se o modo de indexação for definido de forma consistente, as propriedades do sistema id são automaticamente _ts indexadas.If the indexing mode is set to consistent, the system properties id and _ts are automatically indexed.

Ao incluir e excluir caminhos, poderá encontrar os seguintes atributos:When including and excluding paths, you may encounter the following attributes:

  • kindpode ser range hash ou.kind can be either range or hash. A funcionalidade do índice de gama fornece toda a funcionalidade de um índice de haxixe, pelo que recomendamos a utilização de um índice de gama.Range index functionality provides all of the functionality of a hash index, so we recommend using a range index.

  • precisioné um número definido ao nível do índice para caminhos incluídos.precision is a number defined at the index level for included paths. Um valor -1 de indica a máxima precisão.A value of -1 indicates maximum precision. Recomendamos sempre definir este valor para -1 .We recommend always setting this value to -1.

  • dataTypepode ser String Number ou.dataType can be either String or Number. Isto indica os tipos de propriedades JSON que serão indexadas.This indicates the types of JSON properties which will be indexed.

Quando não especificadas, estas propriedades terão os seguintes valores predefinidos:When not specified, these properties will have the following default values:

Nome da PropriedadeProperty Name Valor PredefinidoDefault Value
kind range
precision -1
dataType String e NumberString and Number

Consulte esta secção para indexar exemplos de política para incluir e excluir caminhos.See this section for indexing policy examples for including and excluding paths.

Incluir/excluir precedênciaInclude/exclude precedence

Se os seus caminhos incluídos e caminhos excluídos tiverem um conflito, o caminho mais preciso tem precedência.If your included paths and excluded paths have a conflict, the more precise path takes precedence.

Eis um exemplo:Here's an example:

Caminho Incluído:/food/ingredients/nutrition/*Included Path: /food/ingredients/nutrition/*

Caminho excluído:/food/ingredients/*Excluded Path: /food/ingredients/*

Neste caso, o caminho incluído tem precedência sobre o caminho excluído porque é mais preciso.In this case, the included path takes precedence over the excluded path because it is more precise. Com base nestes caminhos, quaisquer dados no food/ingredients caminho ou aninhados dentro seriam excluídos do índice.Based on these paths, any data in the food/ingredients path or nested within would be excluded from the index. A exceção seria dados dentro do caminho incluído: /food/ingredients/nutrition/* , que seria indexado.The exception would be data within the included path: /food/ingredients/nutrition/*, which would be indexed.

Aqui estão algumas regras para a precedência de caminhos incluídos e excluídos em Azure Cosmos DB:Here are some rules for included and excluded paths precedence in Azure Cosmos DB:

  • Caminhos mais profundos são mais precisos do que caminhos mais estreitos.Deeper paths are more precise than narrower paths. por exemplo: /a/b/? é mais preciso do que /a/? .for example: /a/b/? is more precise than /a/?.

  • O /? é mais preciso do que /* .The /? is more precise than /*. Por exemplo, /a/? é mais preciso do que tem /a/* /a/? precedência.For example /a/? is more precise than /a/* so /a/? takes precedence.

  • O caminho /* deve ser um caminho incluído ou um caminho excluído.The path /* must be either an included path or excluded path.

Índices espaciaisSpatial indexes

Quando se define um caminho espacial na política de indexação, deve definir qual o índice que type deve ser aplicado a esse caminho.When you define a spatial path in the indexing policy, you should define which index type should be applied to that path. Os tipos possíveis para índices espaciais incluem:Possible types for spatial indexes include:

  • PontoPoint

  • PolígonoPolygon

  • MultiPolygonMultiPolygon

  • LineStringLineString

Azure Cosmos DB, por padrão, não criará quaisquer índices espaciais.Azure Cosmos DB, by default, will not create any spatial indexes. Se você gostaria de usar funções espaciais SQL incorporadas, você deve criar um índice espacial sobre as propriedades necessárias.If you would like to use spatial SQL built-in functions, you should create a spatial index on the required properties. Consulte esta secção para indexar exemplos de política para adicionar índices espaciais.See this section for indexing policy examples for adding spatial indexes.

Índices compostosComposite indexes

Consultas que têm uma ORDER BY cláusula com duas ou mais propriedades requerem um índice composto.Queries that have an ORDER BY clause with two or more properties require a composite index. Também pode definir um índice composto para melhorar o desempenho de muitas consultas de igualdade e alcance.You can also define a composite index to improve the performance of many equality and range queries. Por predefinição, não são definidos índices compostos, pelo que deve adicionar índices compostos conforme necessário.By default, no composite indexes are defined so you should add composite indexes as needed.

Ao contrário de caminhos incluídos ou excluídos, não é possível criar um caminho com o /* wildcard.Unlike with included or excluded paths, you can't create a path with the /* wildcard. Cada caminho composto tem um implícito /? no final do caminho que não precisa de especificar.Every composite path has an implicit /? at the end of the path that you don't need to specify. Os caminhos compostos conduzem a um valor escalar e este é o único valor que está incluído no índice composto.Composite paths lead to a scalar value and this is the only value that is included in the composite index.

Ao definir um índice composto, especifica:When defining a composite index, you specify:

  • Dois ou mais caminhos de propriedade.Two or more property paths. A sequência em que os caminhos da propriedade são definidos importa.The sequence in which property paths are defined matters.

  • A ordem (ascendente ou descendente).The order (ascending or descending).

Nota

Quando adicionar um índice composto, a consulta utilizará os índices de gama existentes até que a nova adição do índice composto esteja completa.When you add a composite index, the query will utilize existing range indexes until the new composite index addition is complete. Portanto, quando adicionar um índice composto, não poderá observar imediatamente melhorias de desempenho.Therefore, when you add a composite index, you may not immediately observe performance improvements. É possível acompanhar o progresso da transformação do índice utilizando um dos SDKs.It is possible to track the progress of index transformation by using one of the SDKs.

ENCOMENDA POR consultas sobre múltiplas propriedades:ORDER BY queries on multiple properties:

As seguintes considerações são utilizadas quando se utilizam índices compostos para consultas com uma ORDER BY cláusula com duas ou mais propriedades:The following considerations are used when using composite indexes for queries with an ORDER BY clause with two or more properties:

  • Se os percursos do índice composto não corresponderem à sequência das propriedades na ORDER BY cláusula, então o índice composto não pode suportar a consulta.If the composite index paths do not match the sequence of the properties in the ORDER BY clause, then the composite index can't support the query.

  • A ordem dos percursos de índice composto (ascendente ou descendente) também deve corresponder order à ORDER BY cláusula.The order of composite index paths (ascending or descending) should also match the order in the ORDER BY clause.

  • O índice composto também suporta uma ORDER BY cláusula com a ordem oposta em todos os caminhos.The composite index also supports an ORDER BY clause with the opposite order on all paths.

Considere o seguinte exemplo quando um índice composto é definido no nome, idade e _ts:Consider the following example where a composite index is defined on properties name, age, and _ts:

Índice CompostoComposite Index ORDER BYConsulta de amostrasSample ORDER BY Query Suportado por Índice Composto?Supported by Composite Index?
(name ASC, age ASC) SELECT * FROM c ORDER BY c.name ASC, c.age asc Yes
(name ASC, age ASC) SELECT * FROM c ORDER BY c.age ASC, c.name asc No
(name ASC, age ASC) SELECT * FROM c ORDER BY c.name DESC, c.age DESC Yes
(name ASC, age ASC) SELECT * FROM c ORDER BY c.name ASC, c.age DESC No
(name ASC, age ASC, timestamp ASC) SELECT * FROM c ORDER BY c.name ASC, c.age ASC, timestamp ASC Yes
(name ASC, age ASC, timestamp ASC) SELECT * FROM c ORDER BY c.name ASC, c.age ASC No

Deve personalizar a sua política de indexação para que possa servir todas as ORDER BY consultas necessárias.You should customize your indexing policy so you can serve all necessary ORDER BY queries.

Consultas com filtros em várias propriedadesQueries with filters on multiple properties

Se uma consulta tiver filtros em duas ou mais propriedades, pode ser útil criar um índice composto para estas propriedades.If a query has filters on two or more properties, it may be helpful to create a composite index for these properties.

Por exemplo, considere a seguinte consulta que tem um filtro de igualdade em duas propriedades:For example, consider the following query which has an equality filter on two properties:

SELECT * FROM c WHERE c.name = "John" AND c.age = 18

Esta consulta será mais eficiente, demorando menos tempo e consumindo menos RU's, se for capaz de alavancar um índice composto em (nome ASC, idade ASC).This query will be more efficient, taking less time and consuming fewer RU's, if it is able to leverage a composite index on (name ASC, age ASC).

Consultas com filtros de gama também podem ser otimizadas com um índice composto.Queries with range filters can also be optimized with a composite index. No entanto, a consulta só pode ter um filtro de gama única.However, the query can only have a single range filter. Os filtros de gama > incluem, , , e < <= >= != .Range filters include >, <, <=, >=, and !=. O filtro de gama deve ser definido por último no índice composto.The range filter should be defined last in the composite index.

Considere a seguinte consulta com filtros de igualdade e gama:Consider the following query with both equality and range filters:

SELECT * FROM c WHERE c.name = "John" AND c.age > 18

Esta consulta será mais eficiente com um índice composto em (nome ASC, idade ASC).This query will be more efficient with a composite index on (name ASC, age ASC). No entanto, a consulta não utilizaria um índice composto em (asC de idade, nome ASC) porque os filtros de igualdade devem ser definidos primeiro no índice composto.However, the query would not utilize a composite index on (age ASC, name ASC) because the equality filters must be defined first in the composite index.

As seguintes considerações são usadas ao criar índices compostos para consultas com filtros em várias propriedadesThe following considerations are used when creating composite indexes for queries with filters on multiple properties

  • As propriedades do filtro da consulta devem coincidir com as do índice composto.The properties in the query's filter should match those in composite index. Se uma propriedade estiver no índice composto mas não estiver incluída na consulta como um filtro, a consulta não utilizará o índice composto.If a property is in the composite index but is not included in the query as a filter, the query will not utilize the composite index.
  • Se uma consulta tiver propriedades adicionais no filtro que não foram definidas num índice composto, então uma combinação de índices compósitos e de intervalo será usada para avaliar a consulta.If a query has additional properties in the filter that were not defined in a composite index, then a combination of composite and range indexes will be used to evaluate the query. Isto requer menos RU's do que exclusivamente usando índices de gama.This will require fewer RU's than exclusively using range indexes.
  • Se uma propriedade tiver um filtro de alcance ( > , , , , ou ), < <= >= != então esta propriedade deve ser definida por último no índice composto.If a property has a range filter (>, <, <=, >=, or !=), then this property should be defined last in the composite index. Se uma consulta tiver mais de um filtro de gama, não utilizará o índice composto.If a query has more than one range filter, it will not utilize the composite index.
  • Ao criar um índice composto para otimizar consultas com múltiplos filtros, ORDER o índice composto não terá qualquer impacto nos resultados.When creating a composite index to optimize queries with multiple filters, the ORDER of the composite index will have no impact on the results. Esta propriedade é opcional.This property is optional.
  • Se não definir um índice composto para uma consulta com filtros em várias propriedades, a consulta continuará a ter sucesso.If you do not define a composite index for a query with filters on multiple properties, the query will still succeed. No entanto, o custo RU da consulta pode ser reduzido com um índice composto.However, the RU cost of the query can be reduced with a composite index.

Considere os seguintes exemplos em que um índice composto é definido no nome, idade e marca de tempo das propriedades:Consider the following examples where a composite index is defined on properties name, age, and timestamp:

Índice CompostoComposite Index Consulta de amostrasSample Query Suportado por Índice Composto?Supported by Composite Index?
(name ASC, age ASC) SELECT * FROM c WHERE c.name = "John" AND c.age = 18 Yes
(name ASC, age ASC) SELECT * FROM c WHERE c.name = "John" AND c.age > 18 Yes
(name DESC, age ASC) SELECT * FROM c WHERE c.name = "John" AND c.age > 18 Yes
(name ASC, age ASC) SELECT * FROM c WHERE c.name != "John" AND c.age > 18 No
(name ASC, age ASC, timestamp ASC) SELECT * FROM c WHERE c.name = "John" AND c.age = 18 AND c.timestamp > 123049923 Yes
(name ASC, age ASC, timestamp ASC) SELECT * FROM c WHERE c.name = "John" AND c.age < 18 AND c.timestamp = 123049923 No

Consultas com um filtro e com uma cláusula ORDER BYQueries with a filter as well as an ORDER BY clause

Se uma consulta filtrar uma ou mais propriedades e tiver propriedades diferentes na cláusula ORDER BY, pode ser útil adicionar as propriedades no filtro à ORDER BY cláusula.If a query filters on one or more properties and has different properties in the ORDER BY clause, it may be helpful to add the properties in the filter to the ORDER BY clause.

Por exemplo, adicionando as propriedades no filtro à cláusula ORDER BY, a seguinte consulta poderia ser reescrita para alavancar um índice composto:For example, by adding the properties in the filter to the ORDER BY clause, the following query could be rewritten to leverage a composite index:

Consulta utilizando índice de gama:Query using range index:

SELECT * FROM c WHERE c.name = "John" ORDER BY c.timestamp

Consulta utilizando índice composto:Query using composite index:

SELECT * FROM c WHERE c.name = "John" ORDER BY c.name, c.timestamp

As mesmas otimizações de padrão e consulta podem ser generalizadas para consultas com filtros de igualdade múltiplas:The same pattern and query optimizations can be generalized for queries with multiple equality filters:

Consulta utilizando índice de gama:Query using range index:

SELECT * FROM c WHERE c.name = "John", c.age = 18 ORDER BY c.timestamp

Consulta utilizando índice composto:Query using composite index:

SELECT * FROM c WHERE c.name = "John", c.age = 18 ORDER BY c.name, c.age, c.timestamp

As seguintes considerações são utilizadas na criação de índices compósitos para otimizar uma consulta com um filtro e ORDER BY cláusula:The following considerations are used when creating composite indexes to optimize a query with a filter and ORDER BY clause:

  • Se a consulta filtrar as propriedades, estas devem ser incluídas primeiro na ORDER BY cláusula.If the query filters on properties, these should be included first in the ORDER BY clause.
  • Se não definir um índice composto numa consulta com um filtro numa propriedade e uma cláusula separada ORDER BY usando uma propriedade diferente, a consulta continuará a ter sucesso.If you do not define a composite index on a query with a filter on one property and a separate ORDER BY clause using a different property, the query will still succeed. No entanto, o custo ru da consulta pode ser reduzido com um índice composto, particularmente se a propriedade na ORDER BY cláusula tiver uma cardinalidade elevada.However, the RU cost of the query can be reduced with a composite index, particularly if the property in the ORDER BY clause has a high cardinality.
  • Todas as considerações para a criação de índices compósitos para ORDER BY consultas com múltiplas propriedades, bem como consultas com filtros em várias propriedades ainda se aplicam.All considerations for creating composite indexes for ORDER BY queries with multiple properties as well as queries with filters on multiple properties still apply.
Índice CompostoComposite Index ORDER BYConsulta de amostrasSample ORDER BY Query Suportado por Índice Composto?Supported by Composite Index?
(name ASC, timestamp ASC) SELECT * FROM c WHERE c.name = "John" ORDER BY c.name ASC, c.timestamp ASC Yes
(name ASC, timestamp ASC) SELECT * FROM c WHERE c.name = "John" ORDER BY c.timestamp ASC, c.name ASC No
(name ASC, timestamp ASC) SELECT * FROM c WHERE c.name = "John" ORDER BY c.timestamp ASC No
(age ASC, name ASC, timestamp ASC) SELECT * FROM c WHERE c.age = 18 and c.name = "John" ORDER BY c.age ASC, c.name ASC,c.timestamp ASC Yes
(age ASC, name ASC, timestamp ASC) SELECT * FROM c WHERE c.age = 18 and c.name = "John" ORDER BY c.timestamp ASC No

Modificação da política de indexaçãoModifying the indexing policy

A política de indexação de um contentor pode ser atualizada a qualquer momento utilizando o portal Azure ou um dos SDKs suportados.A container's indexing policy can be updated at any time by using the Azure portal or one of the supported SDKs. Uma atualização da política de indexação desencadeia uma transformação do índice antigo para o novo, que é realizado online e em vigor (para que nenhum espaço adicional de armazenamento seja consumido durante a operação).An update to the indexing policy triggers a transformation from the old index to the new one, which is performed online and in place (so no additional storage space is consumed during the operation). O índice da velha política é eficientemente transformado para a nova política sem afetar a disponibilidade de escrita ou a produção prevista no contentor.The old policy's index is efficiently transformed to the new policy without affecting the write availability or the throughput provisioned on the container. A transformação do índice é uma operação assíncronea, e o tempo que leva para completar depende da produção prevista, do número de itens e do seu tamanho.Index transformation is an asynchronous operation, and the time it takes to complete depends on the provisioned throughput, the number of items and their size.

Nota

Ao adicionar um índice de intervalo ou de espaço, as consultas podem não devolver todos os resultados correspondentes, e fá-lo-ão sem retornar quaisquer erros.While adding a range or spatial index, queries may not return all the matching results, and will do so without returning any errors. Isto significa que os resultados da consulta podem não ser consistentes até que a transformação do índice esteja concluída.This means that query results may not be consistent until the index transformation is completed. É possível acompanhar o progresso da transformação do índice utilizando um dos SDKs.It is possible to track the progress of index transformation by using one of the SDKs.

Se o modo da nova política de indexação for definido como Consistente, nenhuma outra alteração da política de indexação pode ser aplicada enquanto a transformação do índice estiver em curso.If the new indexing policy's mode is set to Consistent, no other indexing policy change can be applied while the index transformation is in progress. Uma transformação de índice em execução pode ser cancelada definindo o modo da política de indexação para Nenhum (que irá imediatamente baixar o índice).A running index transformation can be canceled by setting the indexing policy's mode to None (which will immediately drop the index).

Políticas de indexação e TTLIndexing policies and TTL

A função Time-to-Live (TTL) requer que a indexação esteja ativa no recipiente em que está ligado.The Time-to-Live (TTL) feature requires indexing to be active on the container it is turned on. Isto significa que:This means that:

  • não é possível ativar o TTL num recipiente onde o modo de indexação é definido para Nenhum,it is not possible to activate TTL on a container where the indexing mode is set to None,
  • não é possível definir o modo de indexação a Nenhum num recipiente onde o TTL é ativado.it is not possible to set the indexing mode to None on a container where TTL is activated.

Para cenários em que não é necessário indexar nenhum caminho imobiliário, mas o TTL é necessário, pode utilizar uma política de indexação com:For scenarios where no property path needs to be indexed, but TTL is required, you can use an indexing policy with:

  • um modo de indexação definido para Consistente, ean indexing mode set to Consistent, and
  • nenhum caminho incluído, eno included path, and
  • /*como o único caminho excluído./* as the only excluded path.

Próximos passosNext steps

Leia mais sobre a indexação nos seguintes artigos:Read more about the indexing in the following articles: