Indexação baseada em facetas - Amazon Cloud Directory

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Indexação baseada em facetas

Com indexação e pesquisa baseadas em facetas, você pode otimizar suas pesquisas de diretório procurando somente um subconjunto do diretório. Para isso, você deve usar uma faceta do esquema. Por exemplo, em vez de pesquisar em todos os objetos do usuário no seu diretório, você pode pesquisar somente os objetos do usuário que contêm uma faceta do funcionário. Essa eficiência ajuda a reduzir o tempo de latência e a quantidade de dados recuperados para consulta.

Com a indexação baseada em facetas, você pode usar as operações de API do índice do Cloud Directory para criar e anexar um índice às facetas dos objetos. Você também pode listar os resultados do índice e filtrá-los com base em determinadas facetas. Isso pode reduzir efetivamente o tempo de consulta e a quantidade de dados, estreitando o escopo de pesquisa somente a objetos contendo determinado tipo de facetas.

O atributo “facets” que é usado com as chamadas de API CreateIndex e ListIndex faz surgir a coleção de facetas aplicadas a um objeto. Este atributo está disponível para uso somente com as chamadas de API CreateIndex e ListIndex. Conforme exibido no código de exemplo a seguir, o ARN do esquema usa a região, a conta do proprietário e o ID do diretório para fazer referência ao esquema do Cloud Directory. Esse esquema fornecido por serviço não aparece nas listagens.

String cloudDirectorySchemaArn = String.format(“arn:aws:clouddirectory:%s:%s:directory/%s/schema/CloudDirectory/1.0", region, ownerAccount, directoryId);

Por exemplo, o código de exemplo a seguir cria um índice baseado em faceta específico da sua conta da AWS e do diretório, onde você pode enumerar todos os objetos criados com a faceta SalesDepartmentFacet.

nota

Use o valor das “facetas” nos parâmetros, conforme exibido abaixo. As instâncias das “facetas” mostradas no código de exemplo referem-se a um valor fornecido e controlado pelo serviço do Cloud Directory. Você pode usá-las para indexação, mas pode ter acesso de somente leitura.

// Create a facet-based index String cloudDirectorySchemaArn = String.format(“arn:aws:clouddirectory:%s:%s:directory/%s/schema/CloudDirectory/1.0", region, ownerAccount, directoryId); facetIndexResult = clouddirectoryClient.createIndex(new CreateIndexRequest() .withDirectoryArn(directoryArn) .withOrderedIndexedAttributeList(List(new AttributeKey() .withSchemaArn(cloudDirectorySchemaArn) .withFacetName("facets") .withName("facets"))) .withIsUnique(false) .withParentReference("/") .withLinkName("MyFirstFacetIndex")) facetIndex = facetIndexResult.getObjectIdentifier() // Attach objects to the facet-based index clouddirectoryClient.attachToIndex(new AttachToIndexRequest().withDirectoryArn(directoryArn) .withIndexReference(facetIndex).withTargetReference(userObj)) // List all objects val listResults = clouddirectoryClient.listIndex(new ListIndexRequest() .withDirectoryArn(directoryArn) .withIndexReference(facetIndex) .getIndexAttachments() // List the index results filtering for a certain facet val filteredResults = clouddirectoryClient.listIndex(new ListIndexRequest() .withDirectoryArn(directoryArn) .withIndexReference(facetIndex) .withRangesOnIndexedValues(new ObjectAttributeRange() .withAttributeKey(new AttributeKey() .withFacetName("facets") .withName("facets") .withSchemaArn(cloudDirectorySchemaArn)) .withRange(new TypedAttributeValueRange() .withStartMode(RangeMode.INCLUSIVE) .withStartValue("MySchema/1.0/SalesDepartmentFacet") .withEndMode(RangeMode.INCLUSIVE) .withEndValue("MySchema/1.0/SalesDepartmentFacet") )))