Indicizzazione basata su facet - Amazon Cloud Directory

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Indicizzazione basata su facet

Con l'indicizzazione e la ricerca basata su facet, puoi ottimizzare le ricerche di directory ricercando solo un subset della directory. Per eseguire questa operazione, puoi utilizzare un facet di schema. Ad esempio, invece di ricercare in tutti gli oggetti utente nella directory, puoi cercare solo gli oggetti utente contenenti un facet dipendente. Questa efficienza aiuta a ridurre il tempo di latenza e la quantità di dati recuperati per la query.

Con l'indicizzazione basata su facet, puoi utilizzare le operazioni API di indice di Cloud Directory per creare e collegare un indice ai facet degli oggetti. Puoi inoltre elencare i risultati dell'indice, quindi filtrare i risultati in base a determinati facet. In questo modo puoi ridurre in modo efficace i tempi di query e la quantità di dati restringendo l'ambito di ricerca esclusivamente agli oggetti contenenti un determinato tipo di facet.

L'attributo “facets” utilizzato con le chiamate API CreateIndex e ListIndex visualizza la raccolta di facet applicati a un oggetto. Questo attributo è disponibile per l'uso solo con le chiamate API CreateIndex e ListIndex. Come illustrato nel seguente codice di esempio, lo schema ARN utilizza la regione della directory, il proprietario dell'account e l'ID directory per fare riferimento allo schema della Cloud Directory. Lo schema fornito dal servizio non viene visualizzato negli elenchi.

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

Ad esempio, il seguente codice di esempio crea un indice basato su facet specifico per il tuo account AWS e la directory in cui puoi enumerare tutti gli oggetti creati con il facet SalesDepartmentFacet.

Nota

Assicurati di utilizzare il valore "facets" all'interno dei parametri, come illustrato di seguito. Le istanze di «facets» visualizzate nel codice di esempio fanno riferimento a un valore fornito e controllato dal servizio Cloud Directory. Puoi utilizzarle per l'indicizzazione ma potresti averne l'accesso in sola lettura.

// 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") )))