Canalizaciones de índice de inventario de Ingest
Para obtener información sobre el diseño del esquema de índice de producto, consulte Esquema de índice de productos de Ingest. Para obtener información sobre cómo llamar al servicio de ingesta, consulte la API del servicio de in de introducción de búsqueda. Para obtener una lista completa de los campos y parámetros del índice Elasticsearch, consulte Tipos de campos de índice de Elasticsearch .
Correlación de campos de inventario de la base de datos
La siguiente secuencia de pasos ilustra la canalización de indexación de inventario implementada en Apache NiFi. El flujo consta principalmente de dos etapas:
- Paso 1 Asociar inventarios principales a documento de Producto
- Esta etapa describe cómo los datos de inventario se pueden transformar y cargar en el índice de productos.
- Etapa 2: Asociar inventarios secundarios a documento de Producto
- Esta etapa describe cómo los datos del inventario secundario se pueden transformar y cargar en el índice de productos. Empieza con la ejecución del SQL siguiente para recuperar datos de inventario de la base de datos de Commerce:
A continuación, el conjunto de resultados se pasa al procesador FindChildInventoriesFromDatabase para su transformación, utilizando la siguiente tabla para correlacionar el campo de la base de datos devuelto por el SQL anterior con un campo de índice en el índice Producto:SELECT CATENTRY.CATENTRY_ID, LISTAGG(INVENTORY.FFMCENTER_ID, ', ') WITHIN GROUP (ORDER BY INVENTORY.FFMCENTER_ID) FFMCENTER_ID, LISTAGG(TO_CHAR(INVENTORY.QUANTITY), ', ') WITHIN GROUP (ORDER BY INVENTORY.FFMCENTER_ID) QUANTITY, SUM(INVENTORY.QUANTITY) TOTAL FROM INVENTORY, CATENTRY, CATGPENREL WHERE CATGPENREL.CATALOG_ID = ${param.catalogId} AND CATENTRY.CATENTRY_ID = CATGPENREL.CATENTRY_ID AND CATENTRY.CATENTTYPE_ID = 'ItemBean' AND CATENTRY.MARKFORDELETE = 0 AND CATENTRY.CATENTRY_ID = INVENTORY.CATENTRY_ID AND INVENTORY.STORE_ID = ${param.storeId} GROUP BY CATENTRY.CATENTRY_ID ORDER BY CATENTRY.CATENTRY_ID OFFSET ${param.offset} ROWS FETCH NEXT ${param.pageSize} ROWS ONLY
Por ejemplo, consulte los ejemplos de la etapa 2Campo de índice Nombre Tipo de campo de índice Descripción: Propiedades inventories/<fulfillment>/quantity float Cantidad del inventario actual; se correlaciona con INVENTORY.QUANTITY inventories/<fulfillment>/id id_string ID del centro de despacho de pedidos del inventario actual; se correlaciona con INVENTORY.FFMCENTER_ID inventories/total float Suma de la cantidad de INVENTORY.QUANTITY de todos los centros logísticos para la entrada de catálogo.
- Ejemplos de la etapa 1
- El código siguiente es un ejemplo de los datos de entrada para el procesador FindParentInventoriesFromDatabase.
{ "CATENTRY_ID_PARENT": 13698, "FFMCENTER_ID": "10501, 11501", "QUANTITY": "606, 600", "TOTAL": 1206.0 }
- Ejemplos de la etapa 2
- El código siguiente es un ejemplo de los datos de entrada para el procesadorFindChildInventoriesFromDatabase.
{ "CATENTRY_ID": 11778, "FFMCENTER_ID": "10501, 11501, 11502, 11503, 11504, 11505, 11506, 11507, 11508, 11509, 11510, 11511, 11512, 11513, 11514, 11515, 11516, 11517, 11518, 11519, 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550, 11551, 11552, 11553, 11554, 11555", "QUANTITY": "101, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100", "TOTAL": 5601.0 }