vista previa

Sincronización de índices

Cuando funcionan correctamente, los índices se sincronizan. Sin embargo, hay varios casos en los que un índice puede estar desincronizado.

Se dice que un índice se encuentra en un estado coherente cuando representa fielmente el estado de la base de datos de la entidad correspondiente. Por ejemplo, el índice «Order» es coherente si está actualizado con el contenido de la tabla YFS_ORDER_HEADER y las tablas relacionadas. En este caso, el índice refleja fielmente el estado de la base de datos, ya que una consulta en el índice devuelve el mismo conjunto de registros que las tablas de la base de datos. Esto es fundamental para el correcto funcionamiento de las API de búsqueda en Order Search. Si se actualiza un pedido a través de una API, pero no se actualiza el índice correspondiente, es posible que el pedido no aparezca en los resultados de las llamadas a la API de búsqueda, ya que esta se basa en el índice para recuperar los pedidos.

Dado que las operaciones de actualización del índice se realizan de forma asíncrona tras un breve retraso, y dado que existe la posibilidad de que la operación falle al intentarla, es posible que el índice de búsqueda no sea estrictamente coherente en todo momento. Sin embargo, si habilitas Sterling Search Index y está activo, cada operación de actualización del índice se lleva a cabo casi en tiempo real. Los fallos se notifican y se registran en la YFS_Awaiting_Index tabla, y posteriormente el SSI_DELAYED_SYNC agente vuelve a intentarlo. Por lo tanto, aunque no sea estrictamente coherente en todo momento, si Sterling Search Index está activado, se puede dar por sentado que el índice está «sincronizado» con la base de datos a efectos prácticos en condiciones de uso habitual.

Sin embargo, hay situaciones en las que el índice puede desincronizarse considerablemente. A continuación se presentan algunos de esos casos:

  • Tras una actualización, hay varios pedidos en el sistema que aún no están indexados. Dado que estos pedidos se crearon cuando Sterling Search Index no estaba activo, no se registran en ningún sitio, ni siquiera en la YFS_Awaiting_Index tabla. Por lo tanto, el índice está desincronizado.
  • Pedidos anteriores: La función «Índice de búsqueda de Sterling» se activa una vez que se han creado varios pedidos. Por ejemplo, en el caso de una instalación nueva en la que la función no se haya activado desde el principio.
  • Se modifica la plantilla del esquema para añadir más atributos indexables. Si el nuevo atributo corresponde a una columna que ya existe en la base de datos y tiene valores asignados para los registros preexistentes, el índice ya no está sincronizado. Por ejemplo, si se añade el campo ADDRESS_ID a la plantilla de esquema y hay pedidos existentes con un valor introducido en este campo, al buscar pedidos con ADDRESS_ID en los criterios de búsqueda es posible que solo se muestren registros parciales.
  • La función «Índice de búsqueda de Sterling» lleva un tiempo desactivada. En tal caso, Sterling Search Index no sabe qué pedidos se crearon cuando la función estaba desactivada.
  • Los pedidos se transfieren al sistema « Sterling™ Order Management » sin utilizar las API del sistema « Sterling Order Management ». Dado que Sterling Search Index utiliza las API del sistem Sterling Order Management, Sterling Search Index no tendrá conocimiento de dichos pedidos. El índice se desincroniza.

Para realizar un seguimiento de los pedidos «sincronizados», utiliza la YFS_Index_Sync tabla de estadísticas. Dado que la entidad de pedido es específica de cada empresa, esta tabla contiene el indicador « ‘InSync’ » para cada empresa y cada índice. Cuando un índice está desincronizado por cualquier motivo, las búsquedas realizadas a partir de él dejan de ser fiables. Puede gestionar el estado de sincronización específico de la empresa a través de la Consola de gestión de índices.

En algunos casos, Sterling Search Index establece automáticamente el indicador « 'InSync' » en «N». En tales casos, sigue estos pasos:

  • Cuando se inicia una aplicación, un agente o un servidor de integración con la función «Sterling Search Index» desactivada ( yfs.ssi.enabled =N), todas las empresas se marcan como desincronizadas en todos los índices. Esto se debe a que, al estar desactivada la función «Sterling Search Index», no es posible realizar un seguimiento de los pedidos que se crean o modifican y que deben indexarse. Una vez activada esta función, ejecute el SSI_MASS_SYNC modo «sin indexar» para cada empresa con el fin de indexar los pedidos y, a continuación, marque todas las empresas para que se sincronicen a través de la Consola de gestión de índices.
  • Cuando se modifica la definición de la plantilla de esquema de la entidad «pedido», todas las empresas se marcan como «no sincronizadas» en el índice de pedidos. Evalúe el impacto de la actualización de la definición de la plantilla de esquema para comprobar qué empresas se ven afectadas por este cambio. Para cada empresa afectada, ejecute el SSI_MASS_SYNC agente en modo «versionsync» para esa empresa e índice, con el fin de reindexar todos los pedidos de dicha empresa con la nueva definición de la plantilla de estructura. Para cada empresa que no se vea afectada o en la que se haya ejecutado el agente, marque la empresa como sincronizada mediante la Consola de gestión de índices.
  • Cuando se inicia por primera vez una aplicación, un agente o un servidor de integración tras una actualización, todas las empresas se marcan como desincronizadas en todos los índices. Esto se debe a que puede haber pedidos anteriores que deban indexarse. Ejecute el SSI_MASS_SYNC agente en modo «sin indexar» para todas las empresas (en lo que respecta al índice de pedidos) que tengan registros de pedidos preexistentes. A continuación, utiliza la Consola de gestión de índices para indicar que cada empresa debe sincronizarse con el índice de pedidos.

Si tienes que marcar manualmente una empresa como no sincronizada, puedes utilizar la opción «Marcar como no sincronizada» en la Consola de gestión de índices. Es posible que tengas que hacerlo en circunstancias excepcionales, como por ejemplo si un índice se daña y es necesario reconstruirlo por completo. En resumen, hasta que se vuelva a crear el índice en estos casos excepcionales, los intentos de búsqueda desde «Búsqueda de pedidos» pueden resultar poco fiables o dar lugar a errores. Por lo tanto, los usuarios pueden basarse en el indicador « ‘InSync’ » para decidir si una búsqueda en «Order Search» es fiable o si deben recuperar los datos del pedido directamente del sistema « Sterling Order Management ». Una implementación personalizada para configurar este comportamiento en un sistema de comercio electrónico es una buena solución para garantizar que los resultados de la búsqueda sean siempre fiables.

Nota:
  • Las operaciones de índice continúan independientemente del estado del indicador « 'InSync' ». Esto sirve de indicador para que las aplicaciones cliente puedan basarse en los datos de la búsqueda de pedidos.
  • Si Sterling Search Index establece automáticamente el valor de « 'InSync' » en «N», se le notificará mediante una alerta con un SSI_WARN_01 código de error o SSI_WARN_02 .