Todos los productos
Search
Centro de documentos

OpenSearch:Vector search

Última actualización: Oct 15, 2026

La búsqueda vectorial de OpenSearch recupera resultados mediante la similitud de vectores en lugar de palabras clave. Al combinarse con la recuperación multicanal, esta función mejora la precisión de los resultados en escenarios como la respuesta a preguntas educativas y la búsqueda de imágenes. Este tema describe la sintaxis de consulta, los ejemplos de configuración y los límites de los índices vectoriales, incluidos los índices de embedding multimodal que aceptan entradas de texto e imagen.

Rutas de consulta

La búsqueda vectorial de OpenSearch ofrece dos rutas de consulta. Elija la ruta que coincida con el método de análisis configurado para su índice vectorial:

  • Búsqueda vectorial: se pasan los valores del vector directamente en la cadena de consulta. Utilice esta ruta cuando ya cuente con los valores del vector que desea consultar.

  • Búsqueda de embedding multimodal: se pasa texto o una imagen directamente en la cadena de consulta. El análisis de consultas reescribe la entrada como un vector antes de ejecutar la búsqueda. Esta ruta aplica únicamente cuando el método de análisis del índice vectorial es un análisis de embedding multimodal, como qwen3_vl_embedding_2560d o ops_mm_embedding_ecom_001.

Sintaxis

query = vector_index:'vector'&vector_search={"vector_index":{"namespaces":[],"threshold":0.5,"top_n":10,"search_params":{}}}

El parámetro opcional vector_search configura las consultas de índices vectoriales. Utiliza un formato de diccionario donde cada clave es el nombre del índice vectorial que se va a consultar y cada valor es la configuración de consulta correspondiente. La clave debe coincidir con el nombre del índice vectorial utilizado en la cadena de consulta. A continuación se describen los parámetros de configuración más comunes.

Parámetro

Tipo

Valor predeterminado

Descripción

namespaces

list<string>

Divide un índice vectorial por namespace para limitar las consultas a particiones específicas del índice. Máximo: 10,000 namespaces. Si se configuran namespaces, debe especificar uno en cada consulta.

threshold

float

Umbral mínimo de puntuación para la búsqueda vectorial. Se excluyen los resultados cuya puntuación sea inferior a este valor.

top_n

uint32

Cantidad de resultados principales que devuelve la búsqueda vectorial.

search_params.qc_scan_ratio

float

0.01

Proporción de documentos analizados en una consulta de índice QC. La cantidad de documentos analizados se calcula así: Total number of documents * scan_ratio.

search_params.hnsw_ef

uint32

500

Cantidad de documentos analizados en una consulta de índice HNSW. Un valor más alto proporciona una tasa de recuperación mayor, pero requiere más tiempo.

El parámetro vector_search también es válido en escenarios de multi-channel recall.

El siguiente ejemplo consulta un índice vectorial de 64 dimensiones. El bloque de código contiene únicamente el valor del vector y no representa una cadena de consulta completa.

vector: '0.377796,-0.958450,0.409853,-0.238177,-1.293826,0.356797,-0.295727,0.847301,-1.220337,0.148032,-1.128458,0.903187,0.509352,0.293686,-1.005852,-0.488839,0.888227,-0.555556,-0.658025,0.267552,-0.567601,0.003045,0.591734,-0.515983,-1.316453,-1.462450,0.091946,1.554954,0.384802,0.720498,0.144338,1.217826,0.724039,0.044212,0.571332,-1.425430,0.618965,0.481887,-1.617787,1.505416,-0.683652,1.030900,0.562021,0.162437,0.816546,0.112229,-0.739288,-0.342643,-0.199292,0.508368,-1.384887,-1.842170,0.952622,-1.699499,0.199430,-0.232464,-0.273227,-0.383696,-0.511302,0.005458,1.873572,-0.926169,-0.417587,-0.660156'

Ejemplos de consulta

Cada ejemplo muestra el formato recomendado de vector_search junto con el formato anterior del parámetro al que reemplaza.

Establecer un umbral de puntuación mínima

Descripción: excluye los resultados cuya puntuación de distancia vectorial sea inferior al umbral especificado.

Formato anterior del parámetro:&sf=number

Formato nuevo del parámetro:vector_search={"vector_index":{"threshold":0.8}}

Ejemplo:

# Old version
query=index_name:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6&sf=0.8'
# New version
query=index_name:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6'&vector_search={"index_name":{"threshold":0.8}}

Especificar top_n

Descripción: define la cantidad de resultados principales que devuelve la búsqueda vectorial.

Formato anterior del parámetro:&n=number

Formato nuevo del parámetro:vector_search={"vector_index":{"top_n":10}}

Ejemplo:

# Old version
query=index_name:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6&n=10'
# New version
query=index_name:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6'&vector_search={"index_name":{"top_n":10}}

Ordenar resultados por puntuación vectorial

Establezca proxima_score(index_name) en la expresión de ordenamiento fino para obtener la puntuación de distancia vectorial.

  • index_name: el nombre del índice vectorial.

  • Tipo de retorno: float. Para los documentos que no devuelve la búsqueda vectorial, la distancia vectorial es 10,000 de forma predeterminada.

  • Ejemplo: proxima_score(your_vector_index).

Procedimiento:

  1. Vaya a Search Algorithm Center > Sort Configuration > Policy Configuration y haga clic en Create. Establezca el ámbito de aplicación en Default fine sort y seleccione Expression como tipo.

  2. En la página Search Test, configure el parámetro second_rank_name para hacer referencia a la directiva de ordenamiento fino que creó y, a continuación, ejecute una consulta de búsqueda vectorial.

  3. Compare los resultados de búsqueda de la directiva de ordenamiento fino predeterminada con los de la directiva personalizada. Si el resultado de la fórmula de ordenamiento muestra SecondRank: expression[proxima_score(vec)], result[100.000000], la puntuación de distancia vectorial entró en vigor correctamente.

Límites

A continuación se detallan los límites aplicables a la búsqueda vectorial:

  • Métrica de distancia: OpenSearch utiliza la distancia euclidiana (l2) como métrica de distancia vectorial durante la creación del índice de forma predeterminada. Para usar la distancia de producto interno (ip), normalice los vectores antes de pasarlos al motor.

  • Interpretación de la puntuación: en la distancia de producto interno (ip), una puntuación vectorial más alta indica mayor relevancia del documento. En la distancia euclidiana (l2), una puntuación más baja indica mayor relevancia.

  • Tipo de campo: el campo que corresponde a un índice vectorial debe ser del tipo DOUBLE_ARRAY.

  • Dimensiones compatibles: el tokenizer vectorial admite dimensiones de 64, 128, 256 y 512. La cantidad de elementos en el campo DOUBLE_ARRAY debe coincidir exactamente con la dimensión configurada para el índice vectorial.

  • Longitud de consulta y cantidad de índices: la longitud máxima de la cadena del vector de consulta es de 4 KB antes de la codificación. Por lo general, una sola consulta admite hasta dos índices vectoriales.

Búsqueda de embedding multimodal

Cuando el método de análisis de un índice vectorial es un análisis de embedding multimodal, como qwen3_vl_embedding_2560d o ops_mm_embedding_ecom_001, puede pasar texto o una imagen directamente en la consulta. El análisis de consultas reescribe automáticamente la entrada como un vector y luego ejecuta la búsqueda. Una consulta multimodal acepta una entrada unimodal (texto o una URL de imagen) o una entrada multimodal (texto e imagen en la misma consulta).

Consulta unimodal: la consulta de búsqueda es texto o una URL de imagen. Las URL de imagen solo admiten los protocolos http y https.

# Text query
query=mm_vector:'dress'

# Image query
query=mm_vector:'https://example.com/a.jpg'

Consulta multimodal: la consulta de búsqueda es una cadena JSON que contiene tanto texto como una imagen. (Recomendado) Encierre la cadena JSON entre comillas simples. Si utiliza comillas dobles, escápelas.

query=mm_vector:'{"text":"dress","image":"https://example.com/a.jpg"}'

Una vez que el análisis de consultas reescribe la solicitud, las consultas anteriores se convierten a formato vectorial, como mm_vector:'1.0,2.0,3.0', y después se procesan. Este valor vectorial solo ilustra el formato convertido y no indica una cantidad de dimensiones compatible.

Región personalizada de reconocimiento de objetos: en escenarios de búsqueda de imágenes, utilice el parámetro object_location para especificar la ubicación objetivo del reconocimiento de objetos. El formato es x,y,width,height. Este parámetro surte efecto únicamente en búsquedas de imágenes.

Límites

La búsqueda de embedding multimodal está sujeta a los siguientes límites adicionales:

  • Índices vectoriales por aplicación: una aplicación puede tener un máximo de dos índices vectoriales.

  • Tabla de origen de datos: los campos incluidos en un índice de embedding multimodal deben pertenecer a la misma tabla de origen de datos.

  • Tamaño de imagen: el límite de tamaño de la imagen es de 15 MB.

  • Protocolos compatibles: las consultas en línea solo admiten entradas http y https. Los documentos sin conexión también admiten entradas http, https, oss y base64.

Códigos de error relacionados

Los siguientes códigos de error están relacionados con la búsqueda multimodal:

Código de error

Descripción

6615

El reconocimiento de objetos finalizó con errores.

InvalidQP.InvalidVectorIndex

El índice vectorial en la configuración de análisis de consultas no es válido.

Request.ExtendConfig.VectorIndexConfig.InvalidSourceField

El campo de origen configurado para el índice vectorial no es válido.

Request.ExtendConfig.VectorIndexConfig.SourceFieldNotSameTable

Los campos de origen no pertenecen a la misma tabla de origen de datos.

Request.ExtendConfig.VectorIndexConfig.UnsupportedModality

Tipo de modalidad no compatible.