Tengo dos tablas mysql que quiero guardar en un solo índice elástico.
Tabla 1: Product tiene id , name ... etc.
Tabla 2: ProductWarehouse tiene productId , warehouseId , qtyAvailable ... etc.
Product de uno a muchos ProductWarehouse
Mi pregunta es, ¿cómo puedo guardar los registros de ProductWarehouse para cada product como una matriz?
Si se modificó ProductWarehouse , ¿cómo reflejar eso en el índice de Elastic?
cual es la mejor practica?
el índice de productos en Elastic debería verse así:
{ "id", "name": ..., "warehouses": [ {"warehouseId": 1, "qtyAvailable": 3}, {"warehouseId": 10, "qtyAvailable": 30} ] }Mi sugerencia es crear una vista MySQL de la estructura que necesita: el producto se une con ProductWarehouse. Esta vista solo para usar en Sync y luego sincronizar desde esta vista con ElasticSearch usando Logstash.
Luego puede usar el índice ElasticSearsh como esta estructura:
{ "id", "name": ..., "warehouses": 1 } { "id", "name": ..., "warehouses": 3 }