Todos los productos
Search
Centro de documentos

OpenSearch:Configuración general de índices vectoriales

Última actualización: Sep 05, 2026

Este documento explica cómo configurar los ajustes generales y avanzados de un índice vectorial al crear una tabla, con el fin de cumplir con los requisitos de rendimiento, costo y tiempo real de su escenario empresarial.

Parámetros

Durante el paso 4 de la creación de la tabla, puede configurar los ajustes detallados de sus campos vectoriales en la sección Index Schema.

Dimensión del vector

  • Propósito: Define el número de características en un vector. Este valor debe coincidir exactamente con la dimensión de salida de su modelo de embedding.

  • Recomendaciones:

    • Asegúrese de mantener la coherencia: Si la dimensión configurada no coincide con la dimensión de los datos vectoriales escritos, la compilación del índice fallará.

    • Impacto en el rendimiento: Las dimensiones más altas permiten que los vectores representen más información, pero también incrementan el uso de memoria y la sobrecarga computacional. Duplicar la dimensión duplica aproximadamente el uso de memoria.

Tipo de distancia

  • Propósito: Define el método para calcular la similitud entre vectores. Elegir un tipo de distancia adecuado es fundamental para la calidad de la recuperación y depende de las características de sus datos y de su escenario empresarial.

  • Guía de selección:

    Tipo de distancia

    Descripción de la puntuación

    Distancia coseno

    Las puntuaciones oscilan entre [-1, 1], donde valores más altos indican mayor similitud. Una puntuación de 1 significa que los vectores son idénticos, mientras que -1 indica que apuntan en direcciones opuestas.

    Distancia de producto interno

    Puntuaciones más altas indican mayor similitud.

    Distancia euclidiana al cuadrado

    Puntuaciones más bajas indican mayor similitud. Una puntuación de 0 significa que los vectores son idénticos.

Algoritmo de índice vectorial

  • Propósito: Selecciona el algoritmo subyacente para compilar el índice vectorial. Los distintos algoritmos ofrecen diferentes equilibrios entre velocidad de compilación del índice, uso de memoria, rendimiento de consultas y recall.

  • Guía de selección:

    Algoritmo

    Descripción

    Tipo de distancia

    Escala de datos

    Recall

    Latencia

    Uso de memoria

    Caso de uso principal

    FLAT

    (anteriormente Linear)

    • Escala vectorial: Adecuado para decenas de miles de vectores.

    • Escenario: Casos que requieren precisión absoluta de los datos (100 % de recall).

    Inner Product, Squared Euclidean, Cosine

    Muy pequeña (< 10k)

    Decenas de miles

    100% (Exacto)

    Muy alta

    Muy bajo

    Evaluación comparativa; reordenamiento exacto en conjuntos de datos muy pequeños.

    HNSW

    • Escala vectorial: Adecuado para decenas de millones de vectores.

    • Escenario: Opción de alto rendimiento para casos de uso con requisitos estrictos de precisión y baja latencia.

    Inner Product, Squared Euclidean, Cosine

    Media (10M+)

    Decenas de millones

    Muy alto

    Baja

    Muy alto

    Recuperación en línea y en memoria de alto rendimiento.

    HNSW_RaBitQ

    • Escala vectorial: Adecuado para conjuntos de datos a escala de miles de millones.

    • Escenario: Ideal para conjuntos de datos masivos con restricciones estrictas de memoria donde es aceptable sacrificar cierta precisión.

    Squared Euclidean

    Grande (100M+)

    Cientos de millones

    Alto

    Muy baja

    Muy bajo

    Recuperación ligera optimizada con cuantización binaria.

    CagraHNSW

    • Escala vectorial: Adecuado para cientos de millones de vectores.

    • Escenario: Potente opción basada en GPU para indexación de grafos, utilizada frecuentemente con múltiples GPU para conjuntos de datos de cientos de millones de registros.

    Inner Product, Squared Euclidean

    Grande (100M+)

    Cientos de millones

    Muy alto

    Muy baja (GPU)

    Muy alto

    Búsqueda acelerada por GPU para escenarios de alto throughput.

    HNSW_SQ

    (anteriormente QGraph)

    • Escala vectorial: Adecuado para conjuntos de datos a escala de miles de millones.

    • Escenario: Para casos de uso que requieren alto rendimiento de consultas y baja latencia, donde los requisitos de precisión son menos estrictos.

    Inner Product, Squared Euclidean, Cosine

    Muy grande (1B+)

    Escala de miles de millones

    Alto

    Baja

    Alto


    IVF_SQ8

    • Escala vectorial: Adecuado para cientos de millones de vectores.

    • Escenario: Enfoque tradicional y equilibrado cuando los requisitos de precisión y latencia son moderados.

    Inner Product, Squared Euclidean, Cosine

    Grande (~500M)

    Escala de 500 millones

    Medio a alto

    Media

    Bajo

    Solución clásica y rentable para grandes conjuntos de datos que utiliza compresión vectorial para reducir el uso de memoria. Ideal para equilibrar costo y escala, especialmente con niveles de datos fríos y calientes.

    DiskANN

    • Escala vectorial: Diseñado para la máxima escala, capaz de manejar conjuntos de datos de mil millones de vectores o más.

    • Escenario: Utiliza discos locales, por lo que resulta adecuado para escenarios donde se acepta una latencia mayor y el uso de memoria debe ser mínimo.

    Inner Product, Squared Euclidean, Cosine

    Masiva (1B+)

    Más de mil millones

    Alto

    Media a alta

    Muy bajo

    Búsqueda residente en disco para conjuntos de datos a ultra gran escala.

Indexación en tiempo real

  • Propósito: Cuando está habilitada, los datos escritos incrementalmente se indexan y están disponibles para búsqueda en cuestión de segundos.

  • Funcionamiento: El sistema primero construye un índice temporal en memoria para las escrituras de datos en tiempo real. Una vez que este índice temporal alcanza un tamaño determinado, el sistema fusiona sus datos con el índice completo en disco.

  • Recomendaciones:

    • Habilitar (true): Recomendado para servicios en línea que requieren que los datos sean buscables inmediatamente después de su escritura. Esta opción consume una pequeña cantidad adicional de recursos de memoria y CPU.

    • Deshabilitar (false): Adecuado para análisis sin conexión o para datos que no se actualizan frecuentemente tras una importación completa.

Configuración avanzada

Umbral de compilación lineal

  • Propósito: Cuando el número de vectores en un shard está por debajo de este umbral, el sistema realiza una búsqueda por fuerza bruta mediante el algoritmo FLAT, ignorando el algoritmo de índice vectorial seleccionado.

  • Recomendaciones:

    • Valor predeterminado: 5000. Para conjuntos de datos de este tamaño, una búsqueda por fuerza bruta suele tener un rendimiento igual o superior al de un índice complejo debido a la menor sobrecarga de compilación.

    • Cuándo ajustarlo: Por lo general, no es necesario modificar este valor. Sin embargo, si tiene una concurrencia de consultas muy alta y el volumen de datos se acerca al umbral, puede reducir este valor para forzar el uso de un índice de alto rendimiento como HNSW. Esto podría incrementar la sobrecarga de compilación del índice.

Ignorar datos vectoriales no válidos

  • Propósito: Controla cómo maneja el sistema los vectores no válidos (por ejemplo, discrepancias de dimensión o valores nulos) encontrados durante la compilación completa o incremental del índice.

  • Recomendaciones:

    Opción

    Comportamiento

    Caso de uso recomendado

    true

    El sistema omite cualquier fila con un vector no válido, registra una advertencia y continúa con la tarea de compilación del índice.

    Desarrollo y pruebas. Permite depurar rápidamente al evitar que unos pocos registros defectuosos provoquen el fallo de toda la tarea de compilación.

    false

    Si el sistema encuentra algún vector no válido, la tarea de compilación del índice falla inmediatamente y devuelve un error.

    Entorno de producción. Garantiza la calidad de los datos y evita la pérdida silenciosa de información. Se recomienda utilizar esta configuración junto con un pipeline robusto de limpieza de datos ascendente.

Parámetros de indexación en tiempo real

  • Propósito: Cuando la indexación en tiempo real está habilitada, estos parámetros ajustan el procesamiento del flujo de datos en tiempo real.

  • Ejemplo de parámetro: {"proxima.oswg.streamer.segment_size":2048}

  • Explicación del parámetro: proxima.oswg.streamer.segment_size controla cuántos registros en tiempo real se acumulan en memoria antes de volcarlos en un pequeño segmento en memoria.

  • Recomendaciones de ajuste:

    • Escenarios de alto QPS de escritura: Aumente este valor (por ejemplo, a 4096) para reducir el número de segmentos en memoria y disminuir la sobrecarga de gestión del índice. Esto incrementa ligeramente la latencia desde la escritura hasta la búsqueda.

    • Escenarios de bajo QPS de escritura: Mantenga el valor predeterminado de 2048 o redúzcalo para que los datos recién escritos estén disponibles para búsqueda más rápidamente.

Parámetros de recuperación en tiempo real

  • Propósito: Ajusta dinámicamente el comportamiento de búsqueda del algoritmo de índice al momento de la consulta para equilibrar el recall y la latencia. Las claves y valores de este parámetro varían según el algoritmo de índice vectorial seleccionado.

  • Descripción general: Estos parámetros suelen controlar el alcance de la búsqueda. Por ejemplo, con el algoritmo HNSW, el parámetro ef controla el número de nodos vecinos que se recorren durante una búsqueda. Un valor mayor de ef aumenta el recall, pero también incrementa la latencia de la consulta.

  • Ejemplo de configuración (HNSW):

    • {"searcher_name":"HNSW", "ef":200}

    • El valor de ef generalmente oscila entre k (el número de resultados principales a devolver) y 4096; un buen valor inicial es 100, que puede ajustar según sus requisitos empresariales de recall y latencia.

Separador de vectores

  • Propósito: Define el separador utilizado entre los valores de dimensión en datos vectoriales con formato de cadena.

  • Ejemplo: Para los datos vectoriales 1.05,0.15,0.14, el separador es una coma (,), que es el valor predeterminado del sistema. Por lo general, no es necesario cambiar esta configuración.

Control del volumen de escritura y planificación de recursos

El volumen de escritura de datos vectoriales afecta directamente el consumo de memoria de procesamiento de datos y el rendimiento de las consultas. Controle el ritmo de escritura y asigne recursos suficientes para evitar que la latencia de las consultas aumente debido a una memoria de procesamiento insuficiente.

Control del volumen de escritura

  • Limite el tamaño del lote: Evite escribir demasiados documentos en un solo lote. Divida los datos en lotes más pequeños según la dimensión de sus vectores y el tipo de instancia para prevenir picos repentinos en el uso de memoria de procesamiento de datos.

  • Controle la frecuencia de escritura: Para escenarios de escritura de alta frecuencia, considere reducir la concurrencia de escritura o aumentar el intervalo entre lotes. Esto proporciona tiempo suficiente para la compilación del índice y la fusión de segmentos.

  • Supervise la memoria de procesamiento de datos: Si el uso de memoria de procesamiento permanece alto después de las escrituras, incluso cuando hay suficiente memoria general disponible en la instancia, esto indica una alta sobrecarga de memoria por la compilación del índice o la fusión de segmentos. En este caso, reduzca la tasa de escritura y espere a que finalicen las operaciones de fusión antes de reanudar.

Evaluación de recursos y escalado

Si experimenta insuficiencia de memoria de procesamiento de datos o un aumento notable en la latencia de las consultas, evalúe si su tipo de instancia actual satisface sus requisitos empresariales.

  • Utilice la Specification Calculator e introduzca sus parámetros empresariales, como la dimensión del vector, el volumen de datos y el QPS, para obtener un tipo de instancia recomendado.

  • Si la calculadora indica que su tipo de instancia actual es insuficiente, actualice los recursos de memoria y cómputo de sus nodos de datos cambiando la configuración de la instancia.