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 |
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:
Cree una política de ordenamiento con tipo Cava Script y alcance Fine Sort.
Agregue y edite archivos de script en la consola, o cárguelos en formato JSON.
Compile todos los archivos de script y publique la política.
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
Vaya a Policy Management y haga clic en Create.
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
Haga clic en Compile para compilar todos los archivos de script. El estado de la compilación aparece debajo del botón Compile.
Cuando la compilación sea exitosa, haga clic en Publish.
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 |
|
|
Nombre de la política de ordenamiento |
|
|
|
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);
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.