vista previa

Flujo del proceso de indexación de búsquedas

En el sistema « IBM » Sterling® Order Management, la indexación de los datos transaccionales se realiza automáticamente cuando se habilita Sterling Search Index.

Proceso de creación del índice

Cada vez que se crean o modifican datos transaccionales en un sistem Sterling™ Order Management, el índice de búsqueda Sterling detecta la necesidad de indexarlos y envía un subconjunto para resumir dichos datos con el fin de indexarlos una vez que los cambios se hayan confirmado en un sistem Sterling Order Management.

Se ofrece la posibilidad de indexar datos transaccionales para las entidades de pedidos y envíos. Si se ha habilitado el índice de búsqueda de Sterling, como parte del flujo de transacciones empresariales, cada vez que se crea o modifica un pedido o un envío, el sistem Sterling Order Management comprueba si se ha modificado alguno de los atributos indexables durante la transacción, almacena la información en memoria y envía un resumen con los atributos indexables cuando se confirman las API o los agentes empresariales correspondientes.

El índice Sterling Search da soporte al PeriodicBatchIndexer servicio, que recopila los datos recibidos de diferentes transacciones comerciales y realiza periódicamente una actualización por lotes del índice con la información recopilada hasta ese momento. La periodicidad de las actualizaciones por lotes se puede configurar mediante la yfs.ssi.batch.index.periodicity.secs propiedad del archivo yfs.properties_ysc_ext de configuración, cuyo valor predeterminado es de 3 segundos. Por lo tanto, cualquier cambio en los datos del esquema se actualiza en el índice de forma asíncrona, pero casi en tiempo real.

Sterling Order Management El sistema es de naturaleza heterogénea y está compuesto por un servidor de aplicaciones, un servidor de agentes y un servidor de índices de búsqueda. Estos servidores están instalados fuera del sistema de « Sterling Order Management ». Dado que la indexación se realiza de forma asíncrona, siempre existe la posibilidad de que las solicitudes enviadas al servidor de índices de búsqueda no se completen con éxito, se agote el tiempo de espera, se pierdan, etc. Además, por defecto, la actualización del índice se activa solo una vez cada 3 segundos. Si se detiene un servidor de forma forzada, ese conjunto de cambios no se envía al servidor de índice de búsqueda. Por lo tanto, cada vez que se actualiza el índice de búsqueda, se inserta un registro en la YFS_Awaiting_Index tabla con los campos correspondientes « EntityName » y « EntityKey ». Por ejemplo, al actualizar un pedido, se inserta un registro en la YFS_Awaiting_Index tabla con EntityName=Order_Header y EntityKey=<value of OrderHeaderKey>. Este registro se encuentra en el mismo segmento de la base de datos que el registro de la entidad correspondiente.

Sterling Order Management El sistema registra todas las operaciones de actualización de índices en la YFS_Awaiting_Index tabla. Por cada intento de indexación que se realice con éxito, tras la operación de actualización del índice, el registro correspondiente se elimina de la YFS_Awaiting_Index tabla. Si la actualización del índice no se lleva a cabo correctamente por algún motivo —por ejemplo, si el servidor de índices de búsqueda está inactivo o si la comunicación con dicho servidor falla o agota el tiempo de espera—, se registra una excepción y los registros correspondientes permanecen en YFS_Awaiting_Index [...], donde posteriormente son procesados por el SSI_Delayed_Sync agente [...].

El siguiente diagrama ilustra la lógica de creación asíncrona de índices:

Los siguientes pasos describen el proceso de creación de índices:
  1. Se crea o actualiza un pedido en el sistema « Sterling Order Management », lo que indica que se ha modificado al menos uno de los atributos de la plantilla de esquema.
  2. Se ha creado un documento de esquema, que se utiliza para actualizar el índice, para el registro de pedido. Este documento se utiliza para la operación de actualización del índice propiamente dicha, tal y como se explica en los pasos 5 y 6. Sin embargo, en esta fase se crea un registro en la YFS_Awaiting_Index tabla para realizar un seguimiento de esta operación concreta de actualización del índice.
  3. La API empresarial o el agente realiza la confirmación.
  4. El documento creado en el paso 2 se envía al acumulador del índice de búsqueda Sterling junto con una referencia al registro correspondiente YFS_Awaiting_Index .
  5. El índice de búsqueda Sterling recopila dichos documentos, procedentes de diversas transacciones comerciales, y los envía periódicamente al cliente del motor de búsqueda a través del PeriodicBatchIndexer servicio.
  6. El cliente del motor de búsqueda envía estas actualizaciones del índice al servidor del índice de búsqueda.
  7. Se analiza la respuesta del servidor de índice de búsqueda y, en el caso de las operaciones de actualización que se realizan correctamente, los registros correspondientes se eliminan de la YFS_Awaiting_Index tabla. En el caso de las operaciones que han fallado, se conservan los registros correspondientes YFS_Awaiting_Index .
Nota:
  • El sistema « Sterling Order Management » cuenta con una integración nativa con «Order Search» para facilitar la indexación y las funciones de búsqueda de la entidad «Order ». En esta integración, Order Search se implementa fuera del sistem Sterling Order Management y actúa como servidor de índices de búsqueda, lo que lo convierte en un motor de búsqueda y un repositorio de índices.
  • Por defecto, la integración integrada con Order Service no sincroniza los pedidos muy grandes. Este comportamiento tiene como objetivo evitar fallos en la sincronización y la disminución del rendimiento. Un pedido muy grande extrae una gran cantidad de datos del sistema de « Sterling Order Management » cada vez que se actualiza. La sincronización con el servicio de pedidos es un proceso por lotes que incluye los pedidos modificados durante el intervalo de sincronización periódico (3 segundos por defecto). Cuando se incluyen pedidos muy grandes, estos aumentan la carga útil y pueden superar los límites del sistema, lo que da lugar a excepciones. Estas excepciones detienen el proceso de sincronización, lo que también detiene la sincronización periódica de los pedidos. Para evitarlo, los pedidos de gran volumen no se tienen en cuenta de forma predeterminada para la sincronización con el Servicio de Pedidos.

    Se ha añadido esta PREVENT_INDEXING_OF_VERY_LARGE_ORDER regla para permitir la sincronización de pedidos muy grandes con el Servicio de Pedidos. Por defecto, esta regla está configurada en «Y», lo que impide que se sincronicen dichos pedidos. Puede cambiar el valor a «N» si el documento de resumen del pedido contiene solo datos mínimos de las líneas del pedido y desea evaluar el comportamiento de la sincronización. Si observa alguna disminución del rendimiento o fallos de sincronización, se recomienda volver a la configuración predeterminada. El valor de esta regla solo se puede modificar llamando a manageRule la API.

    Los pedidos cuyas líneas de pedido sean iguales o superiores al VERY_LARGE_ORDER_SIZE valor de la regla se consideran pedidos muy grandes.