Skip to content

Sincronizacion BD - motor

Severidad: Critica

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

El problema

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

Caso real: 6 sinonimos 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 automatico crea o modifica sinonimos en la BD, debe sincronizar con el motor en la misma transaccion logica. Una sola llamada de sincronizacion por run (no una por sinonimo), al final del bucle de aplicacion, antes de marcar el run como completado.

Si la sincronizacion 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 produccion.

Por que

El motor de busqueda mantiene su propia configuracion de sinonimos, 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 sincronizacion ya existia para el flujo de "aprobacion manual desde el panel": cuando un operador acepta una sugerencia, la ruta que la procesa llama a la sincronizacion al terminar. Pero el flujo paralelo del aprendizaje automatico nocturno olvidaba esa llamada. Los sinonimos aprobados por humano se aplicaban; los aprendidos solos vivian en limbo.

Por que esperar a que termine la sincronizacion antes de continuar: si el siguiente run del cron arranca mientras la sincronizacion 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 sinonimos nuevos segun las busquedas del dia. Mibizum garantiza que esos sinonimos quedan activos en el buscador inmediatamente despues de crearse: nunca te pasara que veas un sinonimo en el panel Aprende del cliente y el buscador no lo aplique.

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

Como detectar divergencia

Si sospechas que un sinonimo del panel no esta llegando al motor:

  1. En el panel, abre Sinonimos y filtra por source=learned. Verifica que el sinonimo 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 ultimo run. Si su status es partial con errorMsg mencionando sync_failed, esa es la causa.
  4. Boton Re-sincronizar en el panel (Sinonimos > Acciones > Sincronizar al motor) fuerza la sincronizacion manualmente.

Anti-patrones

DANGER

No confies solo en el flujo de aprobacion manual. Falla cuando el aprendizaje automatico genera filas sin pasar por el operador.

DANGER

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

DANGER

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

Documentacion oficial de Mibizum.