Indexación basada en facetas - Amazon Cloud Directory

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Indexación basada en facetas

Con la indexación y la búsqueda basadas en facetas puede optimizar las búsquedas en su directorio y buscar únicamente en un subconjunto del mismo. Para ello, utilice una faceta de esquema. Por ejemplo, en lugar de buscar en todos los objetos de usuarios en su directorio, puede buscar únicamente los objetos de usuario que contengan una faceta de empleado. Esto ayuda a reducir el tiempo de latencia y la cantidad de datos recuperados para la consulta.

Con la indexación basada en facetas puede utilizar las operaciones API de índices de Cloud Directory para crear y adjuntar un índice a las facetas de los objetos. También puede enumerar los resultados del índice y, a continuación, filtrar los resultados en función de determinadas facetas. Esto puede reducir de forma eficaz los tiempos de consulta y la cantidad de datos, restringiendo el ámbito de búsqueda únicamente a los objetos que contengan un determinado tipo de facetas.

El atributo “facets” que se utiliza con las llamadas a la API CreateIndex y ListIndex muestra el conjunto de facetas aplicadas a un objeto. Este atributo está disponible para su uso exclusivamente con las llamadas a la API CreateIndex y ListIndex. Como se ve en el siguiente código de muestra, el ARN del esquema utiliza la región, la cuenta propietaria y el ID del directorio para hacer referencia al esquema del Cloud Directory. El esquema proporcionado por el servicio no aparece en las listas.

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

Por ejemplo, el siguiente código de muestra crea un índice basado en facetas específico de su cuenta de AWS y del directorio con el que puede enumerar todos los objetos creados con la faceta SalesDepartmentFacet.

nota

Asegúrese de utilizar el valor de facetas dentro de los parámetros, tal y como se muestra a continuación. Las instancias de «facetas» que se ve en el código de muestra se refieren a un valor proporcionado y controlado por el servicio Cloud Directory. Puede utilizarlas para la indexación, pero podrían tener acceso de solo lectura.

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