Todos los productos
Search
Centro de documentos

OpenSearch:Build an e-commerce search prototype with OpenSearch

Última actualización: Sep 04, 2026

Cree un sistema de búsqueda por palabras clave para catálogos de productos que admita búsqueda multiatributo, filtrado por categoría, análisis de consultas y clasificación por relevancia. Al finalizar este tutorial, contará con un prototipo de búsqueda funcional que acepta consultas por palabras clave, filtra resultados por categoría y precio, corrige consultas con errores ortográficos y clasifica los resultados según su relevancia.

System architecture of the e-commerce search prototype

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

  • Una cuenta de Alibaba Cloud con un par de AccessKey. La aplicación de Open Search requiere un par de AccessKey para la autenticación.

  • (Opcional) Un par de AccessKey para un usuario de RAM, si planea delegar el acceso. Para obtener más información, consulte Access authorization rules.

  • (Opcional) Una instancia de ApsaraDB RDS for MySQL con datos de productos, si planea usar una base de datos como origen de datos.

Paso 1: Crear una aplicación

La búsqueda de comercio electrónico involucra varias tablas relacionadas, como una tabla de productos y una tabla de precios. Seleccione una aplicación avanzada que admita la unión de múltiples tablas.

  1. Inicie sesión en la consola de Open Search. En el panel de navegación izquierdo, haga clic en Instance Management. En la página Instance Management, haga clic en Create Instance. En la esquina superior izquierda de la página, establezca la edición en OpenSearch Industry Algorithm Edition y luego seleccione la región objetivo en la barra de navegación superior.

  2. Seleccione el tipo de aplicación. Elija una aplicación avanzada que admita la unión de múltiples tablas. Para comparar los tipos de aplicaciones, consulte Comparison between standard applications and advanced applications.

  3. Configure los parámetros de la aplicación.

    Este tutorial utiliza los siguientes valores de parámetros:

    • Product Edition: Industry Algorithm Edition

    • Product Type: pay-as-you-go

    • Region and Zone: China (Hangzhou)

    • Industry Type: E-commerce Industry

    • Cluster Preferences: Exclusive Cluster - General-purpose

    Parámetro

    Descripción

    Product Type

    Método de facturación: subscription o pay-as-you-go. Para obtener más información, consulte Billing methods.

    Region and Zone

    China: Shenzhen, Qingdao, Beijing, Zhangjiakou, Hangzhou, Shanghai y Hong Kong. Asia Pacífico: Singapore. Europa y América: Germany (Frankfurt) y US (Virginia).

    Application Name

    Acepta dígitos, letras y guiones bajos (_). Debe comenzar con una letra. Máximo 30 caracteres. No se puede modificar después de la creación.

    Application Type

    Aplicación avanzada o aplicación estándar.

    Cluster Preferences

    Tipos de especificaciones: compartido de propósito general, compartido de computación, compartido de almacenamiento, exclusivo de propósito general, exclusivo de computación y exclusivo de almacenamiento. Para obtener más información, consulte What is OpenSearch?.

    Storage Capacity and Computing Resources

    Establezca las cuotas según su carga de trabajo. El número de unidades lógicas de computación (LCU) equivale al número de consultas por segundo (QPS) multiplicado por las LCU consumidas por consulta. Para ver el consumo de LCU por consulta, adquiera una instancia compartida de propósito general y ejecute una prueba de búsqueda.

Paso 2: Definir el esquema de la aplicación

Open Search ofrece cuatro formas de definir el esquema de su aplicación:

Método

Recomendado para

Manually define an application schema

Control total sobre cada campo y tipo

Use a template to define an application schema

Configuración rápida con una plantilla predefinida o personalizada

Upload a file to define an application schema

Inicio a partir de un archivo de datos JSON existente. Open Search analiza el archivo y genera un esquema inicial. Redefina los tipos de campo después de la generación.

Use a data source to define an application schema

Sincronización de datos desde ApsaraDB RDS, MaxCompute o PolarDB. El esquema de la tabla de origen genera el esquema inicial de la aplicación, lo que reduce el trabajo manual y los errores.

Si utiliza servicios de almacenamiento de Alibaba Cloud como MaxCompute, ApsaraDB RDS o PolarDB, especifíquelos como orígenes de datos en la consola de Open Search para habilitar la sincronización automática de datos. Los siguientes pasos utilizan un origen de datos de ApsaraDB RDS como ejemplo. Para obtener más información, consulte Configure an ApsaraDB RDS for MySQL data source.

Conectar al origen de datos

Introduzca los detalles de conexión de la base de datos.

En el cuadro de diálogo Connect to Database, introduzca el RDS Instance ID, Database Name, Username y Password, y luego haga clic en Connect.

Seleccionar el origen de datos

Elija las tablas que desea importar.

En el cuadro de diálogo Select Data Source, haga clic en la pestaña RDS. Establezca Select Database en opensearch (la instancia conectada es rm-bp1pgu04tn0ia280e). En la sección Select Table, agregue product_1 y price_detail_1 a la lista seleccionada y luego haga clic en OK.

Configurar el esquema de la tabla

Este ejemplo utiliza dos tablas:

  • Tabla principal: la tabla de productos (catálogo de productos)

  • Tabla secundaria: la tabla de precios de productos

El ID de clave principal de la tabla de precios de productos está asociado con el ID de clave externa de la tabla de productos.

Al definir el esquema de la aplicación, la tabla principal product_1 contiene los siguientes 15 campos:

  • category_name (nombre de categoría, TEXT)

  • image_url (LITERAL_ARRAY)

  • description (descripción del producto, TEXT)

  • brand_name (nombre de marca, TEXT)

  • thumbnail_url (LITERAL_ARRAY)

  • title (título del producto, TEXT)

  • is_onsale (INT)

  • url (LITERAL)

  • brand_id (LITERAL)

  • series_id (LITERAL)

  • sold_num (volumen de ventas, INT)

  • category_id (INT)

  • onsale_time (fecha de publicación, INT)

  • price (DOUBLE)

  • series_name (TEXT)

Para cada campo, puede configurar la clave principal, la etiqueta de campo, el tipo de campo y la unión con una tabla secundaria.

La tabla secundaria price_detail_1 (origen de datos opensearch:price_detail_1) define los siguientes cuatro campos:

  • discount_price, tipo DOUBLE

  • pid, tipo INT, establecido como clave principal

  • sale_price, tipo DOUBLE

  • act_price, tipo DOUBLE

Definir el esquema de índice

Agregue todos los campos buscables de la tabla de productos y la tabla de precios de productos a una lista de índices denominada "default". Esto habilita consultas como query=default:"keyword".

Establezca la industria en E-commerce y la plantilla en General. La lista de campos de índice contiene las siguientes configuraciones de índice:

  • default (índice predeterminado): contiene los campos category_name, description, brand_name, title, create_by y update_by. Analizador: Industry - E-commerce general analyzer

  • category_name (índice de nombre de categoría): Analizador: Industry - E-commerce general analyzer

  • category_id: Analizador: Keyword

  • series_name: Analizador: Chinese - general analyzer

  • brand_name: Analizador: Chinese - general analyzer

  • id: Analizador: Keyword

  • title (índice de título): Analizador: Industry - E-commerce general analyzer

  • seller_id: Analizador: Keyword

  • brand_id: Analizador: Keyword

  • series_id: Analizador: Keyword

Nota

El analizador afecta los resultados de búsqueda. Elija el método de análisis con cuidado. Para obtener más información, consulte Built-in analyzers.

Habilitar la sincronización de datos

Configure la sincronización automática de datos para que las actualizaciones en el origen de datos se envíen automáticamente a Open Search.

En la página de configuración del origen de datos, tanto las tablas product_1 como price_detail_1 están asociadas con la misma instancia de ApsaraDB RDS, y el interruptor Automatic Data Synchronization está activado.

Finalizar la aplicación

Haga clic en Completed. En la página Application Details, el estado de la aplicación indica que la inicialización está en curso.

Paso 3: Cargar datos

Cuando utiliza un origen de datos de ApsaraDB RDS, la importación completa de datos comienza automáticamente durante la creación del índice. Supervise el progreso de la importación en la página Application Details.

Alternativamente, cargue datos mediante las API o los SDK de Open Search. Para obtener más información, consulte API overview y SDK overview.

Paso 4: Probar consultas de búsqueda

Una vez completada la carga de datos, ejecute una prueba de búsqueda. La consola de Open Search proporciona una página integrada de prueba de búsqueda. Para acceso programático, utilice las API o los SDK de Open Search.

Para obtener detalles sobre la sintaxis de búsqueda, consulte Initiate search requests y query clause.

En la página de prueba de búsqueda, seleccione la aplicación test_han_indexes y el entorno de aplicación sin conexión. Introduzca query=title:'裙子' y establezca la cláusula config en start:0.

Paso 5: Configurar el análisis de consultas

El análisis de consultas procesa las consultas antes de la recuperación para mejorar la calidad de la búsqueda. Las consultas de cola larga pueden devolver pocos resultados, y las consultas con errores ortográficos o pinyin chino pueden no devolver ninguno. El análisis de consultas aborda estos problemas. Para obtener más información, consulte Query analysis y Perform searches based on relevance.

Open Search proporciona las siguientes funciones de análisis de consultas:

Función

Descripción

Ejemplo

Stop word

Filtra palabras sin significado, como signos de puntuación y partículas modales.

Consulta "Running Man!" -- se filtra el signo de exclamación.

Spelling correction

Corrige automáticamente errores ortográficos evidentes. Para posibles errores, se utiliza la consulta original.

"Alipapa" se corrige a "Alibaba".

Word weight

Evalúa la importancia de los términos y asigna pesos. Los términos de baja importancia pueden excluirse de la recuperación.

Consulta "Open Search is good or not" -- recupera documentos que contienen "Open Search".

Synonym

Expande las consultas con sinónimos de la biblioteca de sinónimos integrada y modelos semánticos. Puede combinarse con el peso de palabras para obtener mejores resultados.

"KFC" también recupera "Kentucky Fried Chicken".

Named entity recognition (NER)

Identifica entidades semánticas en las consultas y asigna prioridades de categoría.

"Nike Slim Dress" -- "Nike" (marca, prioridad media), "Slim" (estilo, prioridad baja), "Dress" (categoría, prioridad alta).

Ejemplo: Configurar la corrección ortográfica

Los siguientes pasos muestran cómo configurar una regla de corrección ortográfica.

Crear un diccionario de intervención

  1. En la consola de Open Search, vaya a Search Algorithm Center > Retrieval Configuration. Haga clic en Dictionary Management.

  2. Haga clic en Create. En el panel Create Query Analysis Dictionary, introduzca un nombre de diccionario, establezca Dictionary Type en Spelling Correction y haga clic en Save. En este ejemplo, establezca Name en dic_error.

  3. En la lista de diccionarios, busque su diccionario y haga clic en Manage Entries. La página de gestión de entradas muestra los detalles del diccionario, incluido su nombre, tipo de diccionario, hora de creación y número de entradas. Para agregar entradas, haga clic en Add Intervention Entry o Add Entries in Batches.

  4. Haga clic en Add Intervention Entry para crear una entrada.

    En el cuadro de diálogo Add Intervention Entry, especifique la siguiente información:

    • Query: el término de búsqueda a corregir, por ejemplo 连衣群

    • Corrected Word: el término correcto, por ejemplo 连衣裙

    • Intervention Type: seleccione Add o Block

  5. Haga clic en Save. La entrada aparece en la lista de entradas de intervención. La lista muestra las columnas Query, Corrected Word, Intervention Type, Modified At, Status y Actions, y proporciona un cuadro de búsqueda Enter Query para filtrar entradas. En este ejemplo, la consulta incorrecta 连衣群 se corrige a 连衣裙, el tipo de intervención es Add y el estado es Effective.

Crear una regla de análisis de consultas

  1. Vaya a Search Algorithm Center > Retrieval Configuration. Haga clic en Query Analysis Rule Configuration.

  2. Haga clic en Create. En el panel Create Rule, establezca Intervention Dictionaries en el diccionario de corrección ortográfica que creó (por ejemplo, dic_error). En el mismo panel, introduzca test_error como nombre de la regla. El nombre puede contener dígitos, letras y guiones bajos (_), debe comenzar con una letra minúscula y no puede exceder los 16 caracteres. Establezca la aplicación objetivo en test_han_indexes en el entorno de aplicación en línea, defina el alcance del índice en title y el tipo de industria en E-commerce, y seleccione Spelling Correction en la sección de funciones. Seleccione System Built-in Dictionary como origen del diccionario y luego haga clic en OK para crear la regla.

Probar y aplicar la regla

  1. En la página Query Analysis Rule Configuration, haga clic en Search Test en la columna Actions para verificar el comportamiento de corrección. La lista de reglas muestra el nombre del análisis de consultas test_error, el tipo Custom, el índice objetivo title, la industria E-commerce y la función incluida Spelling Correction.

  2. Después de la verificación, haga clic en Index Orientation y establezca la regla como la regla de análisis de consultas predeterminada.

    En la página de prueba de búsqueda, seleccione el índice, establezca el parámetro qp=test_error e introduzca la consulta title:'连衣群', que contiene un error ortográfico intencional. Haga clic en Search. La consola muestra un aviso indicando que se devolvieron resultados para 连衣裙 con la opción de buscar 连衣群 en su lugar; la consulta se corrige automáticamente a (title:"连衣裙") y se devuelven los productos que coinciden con 连衣裙.

    Una vez establecida la regla como predeterminada, el nombre del análisis de consultas en la lista de reglas cambia a [Default]test_error, que se muestra en rojo porque la regla aún no se ha publicado, y la columna Default muestra Yes. Para revertir esto, haga clic en Cancel Default Rule en la columna Actions.

Paso 6: Configurar expresiones de ordenamiento

Las expresiones de ordenamiento controlan cómo se clasifican los resultados de búsqueda. Puede especificar expresiones de ordenamiento en la cláusula de consulta para ordenar los resultados. Open Search utiliza un enfoque de clasificación en dos fases: la clasificación aproximada (primera fase) reduce los candidatos, y la clasificación fina (segunda fase) determina el orden final.

Para obtener más información, consulte Configure sort expressions.

Crear una expresión de clasificación aproximada

  1. En la consola de Open Search, vaya a Search Algorithm Center > Sort Configuration para abrir la página Policy Management.

  2. Haga clic en Create para agregar una expresión de clasificación aproximada. Seleccione campos representativos como la puntuación de texto y la puntuación de actualidad. La clasificación aproximada afecta significativamente el rendimiento de la búsqueda, así que elija los campos con cuidado.

    En el paso de información básica, seleccione la Target Application y su entorno, e introduzca un Policy Name. El nombre debe tener entre 1 y 30 caracteres, comenzar con una letra y puede contener mayúsculas, minúsculas, dígitos y guiones bajos (_). Establezca Type en Expression y luego haga clic en Next.

    En el paso de configuración de ordenamiento, establezca Scoring Feature en static_bm250 y Weight en 1, y luego haga clic en Finish.

Crear una expresión de clasificación fina

Agregue una expresión de clasificación fina para la puntuación de relevancia de texto.

En la página de información básica del asistente Create Policy, introduzca un Policy Name, establezca Application Scope en Fine Sort, configure Type en Expression y luego haga clic en Next para ir al paso de configuración de ordenamiento.

En el editor de expresiones de ordenamiento, introduzca text_relevance(title) y luego haga clic en Finish.

Comparar resultados de ordenamiento

En la página Search Test, compare los resultados de una consulta estándar con una consulta que aplica la expresión de ordenamiento.

Seleccione el índice test_han_indexes y establezca el tipo de aplicación en Online Application. Introduzca query=title:'裙子' y establezca la cláusula config en start:0. La página muestra los resultados de dos políticas de clasificación fina lado a lado para que pueda verificar el efecto de su configuración de clasificación fina.

Paso 7: Agregar sugerencias desplegables y predicción de categorías

Sugerencias desplegables

Las sugerencias desplegables ayudan a los usuarios a encontrar consultas más rápido mientras escriben, lo que reduce el esfuerzo de entrada en la búsqueda de comercio electrónico. Para obtener instrucciones de configuración, consulte Drop-down suggestions.

Predicción de categorías

La predicción de categorías identifica la categoría de producto a la que probablemente se dirige una consulta de búsqueda. Para obtener instrucciones de configuración, consulte Category prediction.

Paso 8: Controlar la diversidad de resultados y el filtrado

Cláusulas distinct

Cuando varios productos de un solo proveedor obtienen una puntuación alta, pueden dominar la página de resultados. Las cláusulas distinct imponen diversidad para que los resultados incluyan productos de múltiples proveedores. Para obtener más información, consulte Distinct clauses.

Cláusulas filter

Las cláusulas filter permiten a los usuarios limitar los resultados por rangos de atributos, como el precio. Para obtener más información, consulte Filter clauses.

El siguiente código Java muestra cómo filtrar por rango de precios:

if(!lowPrice.equals("")){
  queryElement.addFilter("price>=" + lowPrice);
}
if(!highPrice.equals("")){
  queryElement.addFilter("price<=" + highPrice);
}

Lo que ha creado

Después de completar estos pasos, su prototipo de búsqueda de comercio electrónico admite:

  • Búsqueda por palabras clave de múltiples atributos en tablas unidas

  • Análisis de consultas con corrección ortográfica, palabras vacías, sinónimos y reconocimiento de entidades nombradas

  • Clasificación de relevancia en dos fases con expresiones de clasificación aproximada y fina

  • Sugerencias desplegables y predicción de categorías

  • Diversidad de resultados con cláusulas distinct y filtrado de precios con cláusulas filter

Open Search proporciona API y SDK de búsqueda para que pueda integrar estas capacidades en su aplicación sin necesidad de crear y mantener una infraestructura de búsqueda personalizada.

Siguientes pasos