Como configurar a estrutura de índice ElasticSearch com várias ligações de entidade


Recentemente, comecei a trabalhar na implementação do ElasticSearch (ES) no aplicativo de comércio eletrônico herdado escrito em PHP usando MySQL. Eu sou completamente novo em tudo isso e ler os documentos é bom, mas eu realmente preciso de alguém com experiência para me aconselhar.

A partir da documentação do ES, consegui configurar um novo cluster e também descobri que os rios estão obsoletos e devem ser substituídos; portanto, substituí-los pelo Logstash e pelo conector MySQL JDBC.

Neste ponto, tenho:

ElasticSearchLogstashDriver MySQL JDBCServidor MySQL

A estrutura do banco de dados do aplicativo não é realmente ideal e é muito difícil de substituir, mas eu gostaria de replicá-lo no índice ES da melhor maneira possível.

Estrutura do banco de dados:

Produtos

+-------------------------------+-------+--------+
|              Id               | Title | Price  |
+-------------------------------+-------+--------+
| 00c8234d71c4e94f725cd432ebc04 | Alpha | 589,00 |
| 018357657529fef056cf396626812 | Beta  | 355,00 |
| 01a2c32ceeff0fc6b7dd4fc4302ab | Gamma | 0,00   |
+-------------------------------+-------+--------+

Bandeiras

+------------+-------------+
|     Id     |    Title    |
+------------+-------------+
| sellout    | Sellout     |
| discount   | Discount    |
| topproduct | Top Product |
+------------+-------------+

bandeiras (n: m pivô)

+------+-------------------------------+------------+------------+
|  Id  |           ProductId           |   FlagId   | ExternalId |
+------+-------------------------------+------------+------------+
| 1552 | 00c8234d71c4e94f725cd432ebc04 | sellout    | NULL       |
| 2845 | 00c8234d71c4e94f725cd432ebc04 | topproduct | NULL       |
| 9689 | 018357657529fef056cf396626812 | discount   | NULL       |
| 4841 | 01a2c32ceeff0fc6b7dd4fc4302ab | discount   | NULL       |
+------+-------------------------------+------------+------------+

Esses IDs de cadeia são um desastre completo (mas eu tenho que lidar com eles agora). No começo, pensei em fazer uma estrutura plana do índice Products para ES, mas e as ligações de várias entidades?

questionAnswers(1)

yourAnswerToTheQuestion