Как настроить структуру индекса ElasticSearch с несколькими привязками сущностей
недавно я начал работать над внедрением ElasticSearch (ES) в унаследованное приложение электронной коммерции, написанное на PHP с использованием MySQL. Я абсолютно новичок во всем этом, и чтение документов прекрасно, но мне действительно нужен кто-то с опытом, который бы посоветовал мне.
Из документации ES я смог настроить новый кластер, а также узнал, что реки устарели и должны быть заменены, поэтому я заменил их на Logstash и JDBC MySQL коннектор.
На данный момент у меня есть:
ElasticSearchLogstashJDBC MySQL драйверMySQL серверСтруктура базы данных приложения не совсем оптимальна и ее очень трудно заменить, но я бы хотел воспроизвести ее в индексе ES наилучшим образом.
Структура БД:
Товары
+-------------------------------+-------+--------+
| Id | Title | Price |
+-------------------------------+-------+--------+
| 00c8234d71c4e94f725cd432ebc04 | Alpha | 589,00 |
| 018357657529fef056cf396626812 | Beta | 355,00 |
| 01a2c32ceeff0fc6b7dd4fc4302ab | Gamma | 0,00 |
+-------------------------------+-------+--------+
Флаги
+------------+-------------+
| Id | Title |
+------------+-------------+
| sellout | Sellout |
| discount | Discount |
| topproduct | Top Product |
+------------+-------------+
flagsProducts (n: m pivot)
+------+-------------------------------+------------+------------+
| Id | ProductId | FlagId | ExternalId |
+------+-------------------------------+------------+------------+
| 1552 | 00c8234d71c4e94f725cd432ebc04 | sellout | NULL |
| 2845 | 00c8234d71c4e94f725cd432ebc04 | topproduct | NULL |
| 9689 | 018357657529fef056cf396626812 | discount | NULL |
| 4841 | 01a2c32ceeff0fc6b7dd4fc4302ab | discount | NULL |
+------+-------------------------------+------------+------------+
Эти строковые идентификаторы являются полной катастрофой (но я должен иметь дело с ними сейчас). Сначала я подумал, что мне следует создать плоскую структуру индекса продуктов для ES, но как насчет связывания нескольких сущностей?