Todos los productos
Search
Centro de documentos

OpenSearch:Desarrollo de complementos de ordenamiento con Cava

Última actualización: Sep 05, 2026

Cava es un lenguaje de programación desarrollado por el equipo del motor OpenSearch sobre el proyecto de máquina virtual de bajo nivel (LLVM). Utiliza una sintaxis similar a Java y ofrece un rendimiento comparable al de C++, con diseño orientado a objetos, compilación justo a tiempo (JIT) y comprobaciones de seguridad integradas.

Utilice Cava para escribir complementos de ordenamiento personalizados para el ordenamiento fino en OpenSearch. En comparación con las expresiones de OpenSearch, los complementos de ordenamiento de Cava ofrecen:

Dimensión

Complemento de ordenamiento de Cava

Expresión

Características de sintaxis

Bucles for, definiciones de funciones y clases

Operadores y funciones integradas limitados

Personalización

Lógica de negocio completa en código

Restringida a la gramática de expresiones

Mantenibilidad

Código legible y estructurado

Compacta, pero más difícil de leer a gran escala

Curva de aprendizaje

Familiar para desarrolladores de Java

Requiere aprender la sintaxis de expresiones

Importante

Los complementos de ordenamiento basados en Cava funcionan únicamente con aplicaciones exclusivas y se aplican solo al ordenamiento fino. Para obtener detalles sobre la sintaxis de Cava, consulte los temas sobre complementos de ordenamiento basados en Cava en la Guía del desarrollador.

Funcionamiento

Una política de ordenamiento de Cava contiene uno o más archivos de script de Cava que implementan su lógica de clasificación. El flujo de trabajo es a continuación:

  1. Cree una política de ordenamiento con tipo Cava Script y alcance Fine Sort.

  2. Agregue y edite archivos de script en la consola, o cárguelos en formato JSON.

  3. Compile todos los archivos de script y publique la política.

  4. Haga referencia al nombre y tipo de la política en su SDK o prueba de búsqueda.

Una vez publicada, la política ejecuta el script de Cava durante el ordenamiento fino para puntuar y clasificar documentos según su lógica. Cava admite características de sintaxis como bucles for, definiciones de funciones y clases, lo que le brinda control total sobre la lógica de clasificación más allá de lo que permiten las expresiones de OpenSearch.

Requisitos previos

Antes de empezar, asegúrese de contar con:

  • Una aplicación exclusiva de OpenSearch

  • Acceso a la página Policy Management en la consola de OpenSearch

Creación y despliegue de un complemento de ordenamiento de Cava

Paso 1: Crear una política de ordenamiento

  1. Vaya a Policy Management y haga clic en Create.

  2. En la página Create Policy, establezca Scope en Fine Sort y Type en Cava Script.

Seleccione la aplicación objetivo, introduzca el Policy Name (limitado a 30 caracteres) y luego haga clic en Next para continuar con el paso de configuración de ordenamiento.

Paso 2: Agregar archivos de script

Agregue archivos de script mediante cualquiera de los siguientes métodos:

  • Edite el script de Cava directamente en el editor de la consola.

  • Cargue un archivo de script local en formato JSON.

Paso 3: Compilar y publicar

  1. Haga clic en Compile para compilar todos los archivos de script. El estado de la compilación aparece debajo del botón Compile.

  2. Cuando la compilación sea exitosa, haga clic en Publish.

Importante

Los scripts publicados no se pueden modificar. Para actualizar una política publicada, replíquela en la página Policy Management y edite la copia.

Paso 4: Probar la política de ordenamiento

En la página Search Test de la política, configure los siguientes parámetros:

Parámetro

Valor

second_rank_name

Nombre de la política de ordenamiento

second_rank_type

cava_script

El siguiente ejemplo de Java muestra cómo establecer estos parámetros en el SDK:

// Create a SearchParams object
SearchParams searchParams = new SearchParams(config);

// Configure the Cava sort policy
Rank rank = new Rank();
rank.setSecondRankName("Cava script name");    // Exact name of the published sort policy
rank.setSecondRankType(RankType.CAVA_SCRIPT);  // Invokes Cava script during fine sort

// Attach the rank config to the search request
searchParams.setRank(rank);
Nota

Los scripts referenciados en el SDK deben estar publicados. Los scripts no publicados solo se pueden utilizar en pruebas de búsqueda.

Obtención de parámetros comunes

Puntuación de índice vectorial

Utilice ProximaScore para recuperar la puntuación de similitud de un índice vectorial. Llame a ProximaScore.create() para vincularlo a un índice con nombre y luego llame a evaluate() para obtener la puntuación de cada documento.

import com.aliyun.opensearch.cava.features.similarity.ProximaScore;

// Bind to the target vector index
ProximaScore _proximaScoreVector;
_proximaScoreVector = ProximaScore.create(params, "{{indexes.vector_index}}"); // Replace with your vector index name

// Get the similarity score for the current document
float proximaScoreVector = _proximaScoreVector.evaluate(params);

Límites

Límite

Valor

Tamaño máximo de archivo de script

10 KB por archivo

Máximo de archivos de script por política de ordenamiento

5

Máximo de políticas de ordenamiento de Cava por instancia de aplicación

50

Modificación de script después de publicar

No compatible; replique la política para realizar cambios

Scripts del SDK

Deben publicarse antes de usarse

Scripts no publicados

Disponibles solo en pruebas de búsqueda

Pasos siguientes

  • Aprenda la sintaxis del lenguaje Cava: consulte los temas sobre complementos de ordenamiento basados en Cava en la Guía del desarrollador.