Skip to content

Sincronización BD - motor ​

Severidad: Crítica

Audiencia: operadores y desarrolladores. Si esta regla falla, los sinónimos aprendidos por la IA quedan registrados pero el buscador no los aplica.

El problema ​

El aprendizaje IA crea filas nuevas en la tabla de sinónimos con source='learned' y enabled=true. El operador entra al panel y ve los sinónimos correctos. Pero el buscador devuelve 0 resultados para esas palabras: el motor de búsqueda no los conoce.

Caso real: 6 sinónimos aprendidos en BD entre el 25 y 26 de mayo, todos huerfanos. Ejemplo: oanteni -> pantenol enabled en BD, pero el motor solo tenia 101 entries cuando BD tenia 113. El buscador no aplicaba ninguno de los 12 aprendizajes recientes.

La regla ​

TIP

Cada vez que el aplicador automático crea o modifica sinónimos en la BD, debe sincronizar con el motor en la misma transacción lógica. Una sola llamada de sincronización por run (no una por sinónimo), al final del bucle de aplicación, antes de marcar el run como completado.

Si la sincronización falla, el run termina con status='partial' y queda registrado el error. Nunca silenciar el fallo: la divergencia entre BD y motor genera fallos invisibles en producción.

Por qué ​

El motor de búsqueda mantiene su propia configuración de sinónimos, separada de la BD. La BD es la fuente de verdad operativa (donde se ven los source, los enabled, el historial), pero el motor solo aplica lo que tiene cargado en su config.

La sincronización ya existia para el flujo de "aprobación manual desde el panel": cuando un operador acepta una sugerencia, la ruta que la procesa llama a la sincronización al terminar. Pero el flujo paralelo del aprendizaje automático nocturno olvidaba esa llamada. Los sinónimos aprobados por humano se aplicaban; los aprendidos solos vivian en limbo.

Por que esperar a que termine la sincronización antes de continuar: si el siguiente run del cron arranca mientras la sincronización anterior aun no ha terminado, el segundo run lee un estado intermedio del motor. Race condition. Mejor esperar y registrar el resultado.

Para merchants ​

Cada noche el aprendizaje IA puede crear sinónimos nuevos segun las búsquedas del día. Mibizum garantiza que esos sinónimos quedan activos en el buscador inmediatamente después de crearse: nunca te pasara que veas un sinónimo en el panel Aprende del cliente y el buscador no lo aplique.

Si por alguna razón Mibizum no consiguio aplicar los sinónimos al buscador (mantenimiento, fallo de red), el run aparece marcado como "parcial" en el registro de actividad y puedes reintentar con un click.

Cómo detectar divergencia ​

Si sospechas que un sinónimo del panel no esta llegando al motor:

  1. En el panel, abre Sinónimos y filtra por source=learned. Verifica que el sinónimo este enabled=true.
  2. Busca esa misma palabra en el buscador (overlay o pagina de resultados). Si devuelve 0 resultados, la divergencia es real.
  3. En Actividad Smart, abre el último run. Si su status es partial con errorMsg mencionando sync_failed, esa es la causa.
  4. Boton Re-sincronizar en el panel (Sinónimos > Acciones > Sincronizar al motor) fuerza la sincronización manualmente.

Anti-patrones ​

DANGER

No confies solo en el flujo de aprobación manual. Falla cuando el aprendizaje automático genera filas sin pasar por el operador.

DANGER

No sincronices dentro del bucle, una llamada por sinónimo. El motor tarda cientos de ms por reconfig. Con 20 sinónimos en un run, son segundos perdidos y carga innecesaria. Una sola llamada al final basta.

DANGER

No silencies el error si la sincronización falla. Genera divergencia BD-motor sin alarma. El run debe quedar partial para que el operador lo vea en Actividad Smart.

Documentación oficial de Mibizum.