Todos los productos
Search
Centro de documentos

OpenSearch:Origen de datos OSS + API

Última actualización: Sep 04, 2026

Utilice Object Storage Service (OSS) para compilar el índice completo a partir de archivos HA3 o JSON almacenados en un bucket y, posteriormente, use la API para realizar actualizaciones incrementales una vez que el índice esté activo.

Método

Función

Cuándo utilizarlo

Importación completa desde OSS

Carga todos los registros simultáneamente durante la creación del índice

Compilación inicial o reconstrucción total del índice

Actualización incremental mediante API

Agrega, modifica o elimina registros después de que el índice está activo

Cambios continuos en los datos

Importante

OSS y su instancia de OpenSearch Vector Search Edition deben encontrarse en la misma región. Si las regiones no coinciden, se producirá un error en la conexión al origen de datos.

La configuración consta de dos partes: preparar OSS y luego vincularlo como origen de datos al crear una tabla.

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

  • Una cuenta de Alibaba Cloud con OSS activado

  • Una instancia de Vector Search Edition adquirida (consulte Purchase a Vector Search Edition instance)

  • Archivos de datos codificados en UTF-8, con formato HA3 o JSON

Paso 1: Preparar OSS

Activar OSS

Active OSS en la misma región donde se encuentra su instancia de OpenSearch.

Crear un bucket

  1. Vaya a OSS Management Console > Buckets > Create Bucket.

    En el panel de navegación izquierdo de OSS Management Console, haga clic en Buckets y luego en Create Bucket.

  2. Una vez creado el bucket, agregue una etiqueta de OpenSearch: Vaya a Bucket Settings > Bucket Tagging > Create Tag.

    Establezca tanto la clave de la etiqueta (Key) como su valor (Value) en opensearch.

Preparar los archivos de datos

Los archivos deben cumplir con los siguientes requisitos antes de cargarlos:

Requisito

Detalle

Codificación

UTF-8

Formato

HA3 o JSON

Ubicación

Deben estar dentro de una carpeta, no en la raíz del bucket

Formato JSON

Cada línea corresponde a un documento JSON. No se admite JSON multilínea.

Regla

Detalle

Un registro por línea

Cada objeto JSON debe caber en una sola línea

Separador de líneas

\n entre registros; \n no puede aparecer dentro de un valor JSON

Sin archivos mixtos

El directorio debe contener únicamente archivos de datos JSON

Tipos de valores

Todos los valores JSON son cadenas; el esquema los convierte a los tipos correctos durante la compilación del índice

Ejemplo:

{"field_double": ["100.0", "221.123", "500.3333333"], "field_int32": ["100", "200", "300"], "title": "Huawei Mate 9 Kirin 960 chip Leica dual camera", "color": "Red", "empty_int32": "", "price": "3599", "CMD": "add", "nid": "1", "gather_cn_str": "", "desc": ["str1", "str2", "str3"], "brand": "Huawei", "size": "5.9","__subdocs__":[{"sub_pk":"100","sub_field1":"200","sub_field2":["100","200","300"]},{"sub_pk":"200","sub_field1":"200","sub_field2":["100","200","300"]}]}
{"field_double": ["100.0", "221.123", "500.3333333", "100.0", "221.123", "500.3333333"], "field_int32": ["100", "200", "300", "100", "200", "300"], "title": "Huawei/Huawei P10 Plus full network phone", "color": "Blue", "empty_int32": "", "price": "4388", "CMD": "add", "nid": "2", "gather_cn_str": "colorBlue", "desc": ["str1", "str2", "str3", "str1", "str2", "str3"], "brand": "Huawei", "size": "5.5","__subdocs__":[{"sub_pk":"100","sub_field1":"200","sub_field2":["100","200","300"]},{"sub_pk":"200","sub_field1":"200","sub_field2":["100","200","300"]}]}

Formato HA3

Los archivos HA3 utilizan separadores binarios. Cada archivo contiene una secuencia de comandos add y delete.

Separadores de archivo

Codificación C++

Hexadecimal ASCII

Descripción

Visualización (emacs/vi)

Entrada en emacs

Entrada en vi

"\x1F\n"

1F0A

Separador clave-valor

^_ (seguido de salto de línea)

C-q C-7

C-v C-7

"\x1E\n"

1E0A

Separador de comandos

^^ (seguido de salto de línea)

C-q C-6

C-v C-6

"\x1D"

1D

Separador de valores múltiples

^]

C-q C-5

C-v C-5

"\x1C"

1C

Indicador de peso de sección

^\

C-q C-4

C-v C-4

"\x1D"

1D

Separador de sección

^]

C-q C-5

C-v C-5

"\x03"

03

Separador de campo de subdocumento

^C

C-q C-c

C-v C-c

Formato de comandos

  • Comando Add: La primera línea debe ser CMD=add. Incluya todos los campos definidos en el esquema, en cualquier orden.

    CMD=add^_
    PK=12345321^_
    url=http://www.aliyun.com/index.html^_
    title=Alibaba Cloud Computing Co., Ltd.^_
    body=xxxxxx xxx^_
    time=3123423421^_
    multi_value_field=1234^]324^]342^_
    bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
    ^^
  • Comando Delete: La primera línea debe ser CMD=delete. Incluya el campo de clave primaria y el campo hash de partición. Si ambos corresponden al mismo campo, inclúyalo solo una vez.

    CMD=delete^_
    PK=12345321^_
    ^^

Cargar archivos al bucket

Coloque sus archivos de datos en una carpeta dentro del bucket, no en el directorio raíz. La estructura del bucket debe tener el siguiente aspecto:

<your-bucket-name>/
  └── <your-data-folder>/
        ├── data_file_1.json
        ├── data_file_2.json
        └── ...

Para cargar los archivos:

  1. En OSS Management Console, abra su bucket.

  2. En el panel de navegación izquierdo, vaya a Object Management > Objects.

  3. Haga clic en Upload Object, seleccione sus archivos y confirme.

    Una vez completada la carga, el estado del archivo en el panel Task List mostrará Upload Successful.

Paso 2: Agregar un origen de datos OSS + API

Configurar la información básica de la tabla

  1. En la Instance List, localice su instancia de Vector Search Edition y haga clic en Manage en la columna Actions.

  2. En el panel de navegación izquierdo, vaya a Table Management > Add Table.

  3. Complete la información básica de la tabla y haga clic en Next.

    Campo

    Descripción

    Table Name

    Nombre personalizado para esta tabla

    Number of Data Shards

    Entero positivo, máximo 256. Un mayor número de shards mejora la velocidad de compilación completa y el rendimiento de consultas individuales.

    Number of Data Update Resources

    Recursos utilizados para actualizaciones incrementales de datos. Cada índice incluye de forma predeterminada dos recursos de actualización gratuitos de 4 núcleos y 8 GB. Los recursos adicionales generan costos de facturación. Consulte Vector Search Edition billing.

    Scenario Template

    Elija una opción: General Template, Vector: Image Search Template o Vector: Text Semantic Search Template

    Después de seleccionar la plantilla Vector: Image Search, elija un método de recuperación: Dense Vector Retrieval o Dense & Sparse Vector Hybrid Retrieval.

Configurar la sincronización de datos

  1. Para Full Data Source, seleccione Object Storage Service (OSS) + API.

  2. Complete los detalles de conexión de OSS y haga clic en Data Source Verification.

    Campo

    Descripción

    OSS Path

    Ruta a la carpeta que contiene sus archivos de datos. Debe comenzar con /. No puede contener ?, = ni &. Los archivos deben estar en una carpeta; no se admite el directorio raíz.

    OSS Bucket

    Nombre del bucket de OSS

    Data Format

    Seleccione HA3 o JSON según el formato de sus archivos cargados

    Nota

    En OSS Management Console, en la página Buckets, haga clic en el nombre del bucket de destino (por ejemplo, zhyq-sz) para ir a la página de detalles del bucket.

  3. Una vez superada la verificación, haga clic en Next.

    Si la verificación falla, compruebe que la ruta de OSS apunte a una carpeta (no a la raíz), que el nombre del bucket sea correcto, que el formato de datos coincida con sus archivos y que OSS se encuentre en la misma región que su instancia de OpenSearch.

Configurar campos

Vector Search Edition rellena previamente los campos basándose en su plantilla de escenario e importa las definiciones de campos desde el origen de datos.

  1. Revise los campos predefinidos. Para la Image Search Template, los campos predeterminados son:

    Campo

    Descripción

    id

    Clave primaria

    source_image

    Imagen de origen

    namespace

    Espacio de nombres

    source_image_vector

    Vector de imagen de origen

  2. Configure los tipos y propiedades de los campos:

    • Clave primaria (obligatorio): Establezca Type en un tipo entero o STRING y seleccione la opción Primary Key.

    • Campo vectorial (obligatorio): Establezca Type en FLOAT y seleccione la casilla Vector Field. Los campos vectoriales son de tipo FLOAT con valores múltiples de forma predeterminada, y usan la coma como delimitador. Introduzca un delimitador personalizado si es necesario.

    • Default values: Cuando un campo falta o está vacío en los datos, el sistema asigna un valor predeterminado: 0 para tipos numéricos y una cadena vacía para tipos STRING. Personalice los valores predeterminados según sus necesidades.

  3. Para los campos que requieren preprocesamiento (como source_image), haga clic en Configure en la columna Data Preprocessing. En la configuración de preprocesamiento:

    • Data Source: Seleccione OSS Object Storage para importar imágenes directamente desde OSS (proporcione la ruta de OSS), o bien Base64 Encoding para suministrar datos de imagen codificados mediante la API.

    • Pre-processing Template: Seleccione la plantilla que corresponda a su tipo de datos. Para imágenes, las plantillas disponibles son:

      • Image Vectorization

      • OCR Image Text Recognition

      • OCR Image Text Recognition + Image Vectorization

    • Service List: Tras seleccionar una plantilla, revise los modelos utilizados. Puede elegir entre:

      • Built-in Models: Uso gratuito, con una selección más reducida de tipos de modelos.

    Valores de configuración para este ejemplo:

    • OSS Endpoint: oss-cn-shenzhen-internal.aliyuncs.com

    • OSS Bucket: zhyq-sz

    • En la lista de servicios, seleccione el modelo Built-in General Image Embedding Model - 512D CLIP, con el campo de salida establecido en source_image_vector.

    Haga clic en OK para confirmar.

  4. Haga clic en Next.

Configurar el esquema del índice

  1. Defina los campos incluidos y los parámetros del índice, y luego haga clic en Next.

    Parámetro

    Descripción

    Included Fields

    La clave primaria y el campo vectorial son obligatorios. El campo de espacio de nombres es opcional.

    Vector Dimension

    Cantidad de dimensiones de sus embeddings vectoriales

    Real-time Indexing

    Habilita o deshabilita las actualizaciones del índice en tiempo real

    Distance Type

    Métrica de distancia para la búsqueda por similitud vectorial

    Vector Index Algorithm

    Algoritmo utilizado para compilar el índice vectorial

    Ejemplo de configuración de índice vectorial:

    • Nombre del índice: source_image_vector

    • Recuperación híbrida: Disabled

    • Clave primaria: id, Campo vectorial: source_image_vector

    • Dimensiones: 512

    • Tipo de distancia: SquaredEuclidean

    • Índice en tiempo real: true

    • Algoritmo: Qc

  2. Haga clic en More Advanced Configuration para desplegar los campos de parámetros avanzados:

    • Real-time Index Parameters

    • Index Build Parameters

    • Index Search Parameters

    • Linear Build Threshold

    • Minimum Recall Candidate Set Size

    • Recall Metric Reporting

    • Ignore Problematic Vector Data

    Para consultar la referencia completa de parámetros, vea General vector index configuration.

Confirmar y verificar

  1. En la página Confirm Creation, revise su configuración y haga clic en Confirm.

  2. Regrese a la Instance List. El estado de la instancia cambiará a Normal en aproximadamente 2 minutos.

  3. Cuando el estado sea Normal, utilice Actions > Query Test para ejecutar consultas de prueba y comprobar que el índice funciona correctamente.