Introducción
La función de búsqueda multimodal en OpenSearch combina la búsqueda por texto y la búsqueda vectorial para ofrecer una mayor precisión con menor latencia y costos de cómputo en comparación con las búsquedas que utilizan lógica OR. Este enfoque ha demostrado ser eficaz en escenarios como la respuesta a preguntas. La arquitectura de búsqueda multimodal también se aplica a la recuperación de vectores de imagen, la recuperación de fórmulas y la recuperación personalizada.
¿Por qué usar la búsqueda multimodal?
Recupera documentos relevantes que las búsquedas de texto tradicionales podrían pasar por alto debido a limitaciones en la tokenización, la coincidencia de sinónimos o la corrección ortográfica.
Mejora la recuperación en consultas de cola larga que, de otro modo, devolverían pocos resultados o ninguno.
Ejemplo:
Un usuario busca "carga rápida". Un tokenizer estándar podría dividir esta consulta en dos términos: fast y charge.
Si un documento contiene la frase "supports quick charging", sus tokens podrían ser supports, quick y charging. Una búsqueda basada únicamente en la coincidencia de tokens no recuperaría este documento. Sin embargo, la búsqueda vectorial opera sobre el significado semántico y no solo sobre palabras exactas. Esto le permite reconocer la estrecha relación entre "fast charge" y "quick charging" para recuperar correctamente el documento.
Configuración de la búsqueda multimodal
Configure una aplicación Industry-specific Enhanced Edition for E-commerce. Una vez creada la aplicación, compruebe que el índice vectorial obligatorio esté configurado. El ejemplo en los siguientes pasos utiliza el analizador
Vector - General E-commerce Vector.
En la lista de campos de índice, compruebe que exista un índice vector. Debe estar etiquetado como índice vectorial, incluir el campo title y usar el analizador Vector - General E-commerce Vector.
Cree una regla de análisis de consultas. Agregue la función de vectorización de texto y vincúlela al índice vectorial del paso 1.
En el panel de navegación izquierdo, haga clic en Query Analysis. En la configuración de análisis de consultas, haga clic en la regla que desea modificar. Se abrirá el cuadro de diálogo Edit Rule. En la sección Feature Selection, seleccione la casilla text vectorization. Luego, a la derecha, establezca Vector index en vector y haga clic en OK.
Establezca políticas de ordenamiento. De forma predeterminada, la plantilla Industry-specific Enhanced Edition for E-commerce crea dos políticas de ordenamiento:
sys_first_defaultpara el ordenamiento preliminar ysys_second_defaultpara el ordenamiento fino.
En la página Sort Policies > Policy Management, puede consultar estas dos políticas de ordenamiento y sus expresiones de clasificación.
Cree una política de búsqueda multimodal. Asigne un nombre a la política, configure las rutas de búsqueda y establezca la clasificación combinada.
En el cuadro de diálogo Configure Search Policy, establezca Search Policy Name en sys_strategy. En el área Multimodal Search Configuration, seleccione las casillas vector search y text search, y establezca el Recall Ratio de ambas en 50%. En el área Merge Sort Configuration, establezca merge sort en sys_second_default, configure Number of Sort Documents en 500 y luego haga clic en OK.
5. Prueba en la consola:
Suponga que la consulta es "search test", la política de búsqueda multimodal es sys_strategy y la regla de análisis de consultas es sys_default. Vaya a la página Search Test en la consola. En la sección Parameters, configure los campos **search_strategy, raw_query y qp según corresponda. Nota**: Los tres parámetros son obligatorios, pero puede omitir el parámetro qp si utiliza la regla de análisis de consultas predeterminada. El formato de la solicitud es:
query=default:'search test'&search_strategy=sys_strategy&raw_query=search test&qp=sys_default
Configuración de parámetros del SDK (ejemplo en Java):
...
// Define a Config object to set parameters for the config clause, such as pagination and result format.
Config config = new Config(Lists.<String>newArrayList(appName));
config.setStart(0);
config.setHits(10);
// Set the result format to JSON.
config.setSearchFormat(SearchFormat.FULLJSON);
// Create a SearchParams object.
SearchParams searchParams = new SearchParams(config);
// Set the parameters required for the query.
HashMap<String,String> paraMap=new HashMap<String,String>();
// Set the raw_query.
paraMap.put("raw_query","search test");
// Set the multimodal search policy.
paraMap.put("search_strategy","sys_strategy");
searchParams.setCustomParam(paraMap);
// Set the query analysis rule.
List<String> qpName = new ArrayList<String>();
qpName.add("sys_default"); // Specify the name of the query analysis rule.
searchParams.setQueryProcessorNames(qpName);
...
Notas
La función de búsqueda multimodal solo está disponible para aplicaciones exclusivas.
La función de búsqueda multimodal no admite cláusulas
aggregatenidistinct.Se pueden crear un máximo de 10 políticas de búsqueda multimodal por aplicación.
En la configuración de búsqueda multimodal, tanto la búsqueda por texto como la búsqueda vectorial son obligatorias. La suma de sus proporciones de recuperación debe ser del 100%.
En la configuración de búsqueda multimodal para la búsqueda por texto y la búsqueda vectorial, debe seleccionar una política de ordenamiento preliminar y una de ordenamiento fino desde su configuración de ordenamiento.
En la configuración de clasificación combinada, debe seleccionar una política para el ordenamiento por fusión. Puede seleccionar una política de
ordenamiento finoo "Ninguna". "Ninguna" es la opción predeterminada. El número de documentos a ordenar debe ser un número entero de 1 a 5,000.Al configurar la función de vectorización de texto en el análisis de consultas, no puede seleccionar un índice vectorial que no haya sido generado automáticamente por el sistema.
Para usar un índice vectorial personalizado con la función de búsqueda multimodal, póngase en contacto con nosotros.