Ich begann vor kurzem mit der Implementierung von ElasticSearch (ES) in eine in PHP geschriebene E-Commerce-App mit MySQL. Ich bin völlig neu in all dem Zeug und das Lesen der Dokumente ist in Ordnung, aber ich brauche wirklich jemanden mit Erfahrung, um mich zu beraten.Wie man die ElasticSearch-Indexstruktur mit mehreren Entity-Bindings einrichtet
Aus der ES-Dokumentation konnte ich einen neuen Cluster erstellen und ich fand auch heraus, dass Flüsse veraltet sind und ersetzt werden sollten, also ersetzte ich sie durch Logstash und JDBC MySQL Connector.
An diesem Punkt habe ich:
- Elasticsearch
- Logstash
- JDBC MySQL-Treiber
- MySQL Server
Die Datenbankstruktur der Anwendung nicht wirklich optimal ist, und ist sehr schwer zu ersetzen, aber ich würde es gerne in den ES-Index bestmöglich replizieren.
DB Struktur:
Produkte
+-------------------------------+-------+--------+
| Id | Title | Price |
+-------------------------------+-------+--------+
| 00c8234d71c4e94f725cd432ebc04 | Alpha | 589,00 |
| 018357657529fef056cf396626812 | Beta | 355,00 |
| 01a2c32ceeff0fc6b7dd4fc4302ab | Gamma | 0,00 |
+-------------------------------+-------+--------+
Flags
+------------+-------------+
| Id | Title |
+------------+-------------+
| sellout | Sellout |
| discount | Discount |
| topproduct | Top Product |
+------------+-------------+
flagsProducts (n: m Schwenk)
+------+-------------------------------+------------+------------+
| Id | ProductId | FlagId | ExternalId |
+------+-------------------------------+------------+------------+
| 1552 | 00c8234d71c4e94f725cd432ebc04 | sellout | NULL |
| 2845 | 00c8234d71c4e94f725cd432ebc04 | topproduct | NULL |
| 9689 | 018357657529fef056cf396626812 | discount | NULL |
| 4841 | 01a2c32ceeff0fc6b7dd4fc4302ab | discount | NULL |
+------+-------------------------------+------------+------------+
Diese String-IDs sind ein komplettes Desaster (aber ich muss mich jetzt damit befassen). Zuerst dachte ich, ich sollte eine flache Struktur des Products-Index für ES erstellen, aber was ist mit Mehrfach-Entity-Bindings?
Wenn Sie Ihre MySQL-Daten auf ES verschieben möchten: https://sysadminci.wordpress.com/2016/01/06/import-mysql-data-in-elasticsearch-server/ –
Die flache Datenstruktur scheint am besten zu sein Ansatz so weit. Gibt es besondere Anforderungen an Abfragen für diesen Index? Wenn Sie über die Datenstruktur in ES nachdenken, müssen Sie auch über die Abfragen nachdenken, die Sie verwenden möchten. –
@fagnyr, du hast dich in den letzten 7 Tagen bezüglich deiner Frage nicht gemeldet. Gibt es weitere Informationen, die Sie benötigen? – Val