(Vista previa) Capacidades de búsqueda avanzada con un motor vectorial Amazon S3 - OpenSearch Servicio Amazon

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.

(Vista previa) Capacidades de búsqueda avanzada con un motor vectorial Amazon S3

importante

La integración de Amazon S3 Vectors con el OpenSearch servicio se encuentra en versión preliminar y está sujeta a cambios.

Amazon OpenSearch Service ofrece la posibilidad de utilizar Amazon S3 como motor vectorial para índices vectoriales. Esta función le permite descargar datos vectoriales a Amazon S3 y, al mismo tiempo, mantener las capacidades de búsqueda vectorial en menos de un segundo a un bajo costo.

Con esta función, OpenSearch almacena las incrustaciones vectoriales en un índice vectorial de Amazon S3 y, al mismo tiempo, mantiene otros campos del documento en el almacenamiento del OpenSearch clúster. Esta arquitectura ofrece las siguientes ventajas:

  • Durabilidad: los datos escritos en S3 Vectors se almacenan en S3, que está diseñado para una durabilidad de datos de 11 a 9 segundos.

  • Escalabilidad: transfiera grandes conjuntos de datos vectoriales a S3 sin consumir almacenamiento en clústeres.

  • Rentabilidad: optimice los costos de almacenamiento para cargas de trabajo con gran cantidad de vectores.

OpenSearch tiene los siguientes requisitos para usar índices vectoriales S3:

  • OpenSearch versión 2.19 o posterior

  • OpenSearch Instancias optimizadas

  • La última versión del parche para su OpenSearch lanzamiento

Habilitación de S3 Vectors

Al crear un dominio nuevo o actualizar un dominio existente, puede elegir la opción Habilitar S3 Vectors como motor en la sección Funciones avanzadas. Esta configuración permite OpenSearch crear un depósito vectorial de S3 al utilizar S3 Vectors como motor. Al habilitar esta opción, OpenSearch configura S3 Vectors para su dominio de la siguiente manera:

  1. Crea dos nuevas concesiones en la AWS KMS clave configurada con tu dominio:

    • Una concesión para las tareas de indexación en segundo plano de S3 Vectors con privilegios de descifrado

    • Una concesión para OpenSearch crear depósitos de vectores de S3 con permisos GenerateDataKey

  2. Configurar la clave KMS utilizada por su OpenSearch dominio como CMK para el cifrado del resto de los datos del índice vectorial.

Creación de índices con el motor vectorial S3

Después de configurar un dominio, puede crear uno o más índices k-NN con campos, utilizándolos s3vector como motor vectorial de fondo en las asignaciones de índices. Puede configurar diferentes campos vectoriales con diferentes tipos de motores en función de su caso de uso.

importante

Solo puede utilizar el s3vector motor para mapear una definición de campo durante la creación del índice. No puede añadir ni actualizar el mapeo con el s3vector motor después de crear el índice.

Estos son algunos ejemplos que crean índices de motores vectoriales S3.

Ejemplo: creación de un índice k-NN con el motor vectorial S3

PUT my-first-s3vector-index { "settings": { "index": { "knn": true } }, "mappings": { "properties": { "my_vector_1": { "type": "knn_vector", "dimension": 2, "space_type": "l2", "method": { "engine": "s3vector" } }, "price": { "type": "float" } } } }

Ejemplo: creación de un índice k-NN con motores vectoriales S3 y FAISS

Este ejemplo destaca el hecho de que se pueden utilizar varios motores vectoriales dentro del mismo índice.

PUT my-vector-index { "settings": { "index": { "knn": true } }, "mappings": { "properties": { "my_vector_1": { "type": "knn_vector", "dimension": 2, "space_type": "l2", "method": { "engine": "s3vector" } }, "price": { "type": "float" }, "my_vector_2": { "type": "knn_vector", "dimension": 2, "space_type": "cosine", "method": { "name": "hnsw", "engine": "faiss", "parameters": { "ef_construction": 128, "m": 24 } } } } } }

Ejemplo no compatible: añadir el motor vectorial S3 tras la creación del índice

El siguiente enfoque no es compatible y fallará.

PUT my-first-s3vector-index { "settings": { "index": { "knn": true } } } PUT my-first-s3vector-index/_mapping { "properties": { "my_vector_1": { "type": "knn_vector", "dimension": 2, "space_type": "l2", "method": { "engine": "s3vector" } }, "price": { "type": "float" } } }

Limitaciones funcionales

Tenga en cuenta las siguientes limitaciones antes de utilizar el s3vector motor en un índice:

Características y comportamientos no compatibles con el motor s3vector
Característica Comportamiento

Split/Shrink/Cloneíndice

Estos APIs fallan cuando se utilizan con un índice configurado con el s3vector motor en knn_vector el campo.

Instantáneas

Los índices que utilizan el s3vector motor no admiten instantáneas. Para dominios gestionados:

  • Las instantáneas automatizadas solo incluyen índices que no utilizan el s3vector motor.

  • Las solicitudes manuales de instantáneas para los s3vector índices fallan.

nota

Si bien las instantáneas no son compatibles con la point-in-time recuperación, el s3vector motor, junto con las instancias OpenSearch optimizadas, ofrecen una durabilidad de 11 nueves.

UltraWarm nivel

Los índices configurados con s3vector el motor no pueden migrar al UltraWarm nivel.

Replicación entre clústeres

Los índices configurados con s3vector el motor no admiten la replicación entre clústeres.

Protección contra eliminaciones accidentales

Como las instantáneas no son compatibles con los índices que utilizan el s3vector motor, la protección contra la eliminación accidental no está disponible. Aún puedes restaurar otros índices del dominio.

Búsqueda radial

Las consultas con búsqueda radial no se admiten en los campos que utilizan el s3vector motor.

Indexación de documentos

Tras crear un índice con el motor vectorial S3, puede ingerir documentos mediante la API estándar_bulk. OpenSearch transfiere automáticamente los datos vectoriales de los knn_vector campos que utilizan el s3vector motor al índice vectorial S3 en tiempo real. Los datos que pertenezcan a otros campos o a knn_vector campos que utilicen diferentes motores se conservarán OpenSearch en su propia capa de almacenamiento.

Para todas las solicitudes masivas que se confirmen, OpenSearch garantiza que todos los datos (vectoriales y no vectoriales) sean duraderos. Si una solicitud recibe un acuse de recibo negativo, no se garantiza la durabilidad de los documentos incluidos en esa solicitud masiva. Deberías volver a intentar realizar dichas solicitudes.

Ejemplo de indexación masiva

POST _bulk { "index": { "_index": "my-first-s3vector-index", "_id": "1" } } { "my_vector_1": [1.5, 2.5], "price": 12.2 } { "index": { "_index": "my-first-s3vector-index", "_id": "2" } } { "my_vector_1": [2.5, 3.5], "price": 7.1 } { "index": { "_index": "my-first-s3vector-index", "_id": "3" } } { "my_vector_1": [3.5, 4.5], "price": 12.9 } { "index": { "_index": "my-first-s3vector-index", "_id": "4" } } { "my_vector_1": [5.5, 6.5], "price": 1.2 } { "index": { "_index": "my-first-s3vector-index", "_id": "5" } } { "my_vector_1": [4.5, 5.5], "price": 3.7 }

Búsqueda de documentos

Puede buscar en su índice mediante la _search API estándar para ejecutar consultas de texto, k-NN o híbridas. En el caso de consultas en knn_vector campos configurados con el s3vector motor, transfiere OpenSearch automáticamente la consulta al índice vectorial S3 correspondiente.

nota

Con el s3vector motor, la semántica de actualización solo se aplica a los campos que no utilizan el motor. s3vector Sin embargo, los datos vectoriales descargados en s3vector estarán visibles inmediatamente después de que un documento se indexe correctamente.

Ejemplo de consulta de búsqueda

GET my-first-s3vector-index/_search { "size": 2, "query": { "knn": { "my_vector_1": { "vector": [2.5, 3.5], "k": 2 } } } }

Parámetros de mapeo compatibles

Con el s3vector motor, el knn_vector campo admite los siguientes parámetros en las asignaciones.

Parámetros de campos vectoriales
Parámetro Obligatorio Descripción Valores admitidos
type El tipo de campo presente en el documento. knn_vector
dimension La dimensión de cada vector que se incorporará al índice. >0, <=4096
space_type No El espacio vectorial utilizado para calcular la distancia entre los vectores. l2, cosinesimil
method.engine El motor k-NN aproximado que se utilizará para la indexación y la búsqueda. s3vector
method.name No El método del vecino más cercano ""
importante

El motor no admite los tipos de knn_vector campos anidados s3vector

Medición y facturación

Hasta que no se anuncie la medición, esta función no se facturará.

Desactivar el motor s3vector

Antes de desactivar el s3vector motor, elimine todos los índices que lo utilizan actualmente. Si no lo hace, cualquier intento de desactivar el motor fallará.

Ten en cuenta también que al activar o desactivar el s3vector motor se desencadena un despliegue azul/verde en tu dominio.

Para deshabilitar el s3vector motor, edita la configuración de tu dominio y configúralo. S3VectorsEngine.Enabled: false