Heim > Artikel > Backend-Entwicklung > Wie modelliert man komplexe relationale Daten in einer abgeflachten ElasticSearch-Indexstruktur?
ElasticSearch-Indexstruktur mit mehreren Entitätsbindungen
Um die Notwendigkeit zu verstehen, Datenbankstrukturen für die ElasticSearch (ES)-Integration zu optimieren, ist es wichtig zu untersuchen, wie um komplexe relationale Daten in eine abgeflachte ES-Indexstruktur zu modellieren.
Mehrere Entitätsbindungen in einer flachen Struktur
Denormalisierung ist eine Schlüsseltechnik zur Optimierung der Datenspeicherung. Anstatt beispielsweise eine N:M-Beziehung zwischen Produkten und Flags über eine Pivot-Tabelle aufrechtzuerhalten, sollten Sie erwägen, einen flachen ES-Index zu erstellen, in dem jedes Produktdokument eine Reihe zugehöriger Flags enthält.
Produktdokumentstruktur
Die abgeflachten Produktdokumente würden der folgenden Struktur ähneln:
{ "id": "00c8234d71c4e94f725cd432ebc04", "title": "Alpha", "price": 589.0, "flags": ["Sellout", "Top Product"] }
Produktzuordnungstyp für ES-Index
Der ES-Zuordnungstyp für Diese abgeflachte Struktur würde etwa wie folgt aussehen:
PUT products { "mappings": { "product": { "properties": { "id": { "type": "string", "index": "not_analyzed" }, "title": { "type": "string" }, "price": { "type": "double", "null_value": 0.0 }, "flags": { "type": "string", "index": "not_analyzed" } } } } }
Extrahieren von Daten mithilfe einer SQL-Abfrage
Um die erforderlichen Daten aus der Datenbank für die Logstash-Verarbeitung abzurufen, wird ein SQL Die Abfrage kann wie folgt verwendet werden:
Das obige ist der detaillierte Inhalt vonWie modelliert man komplexe relationale Daten in einer abgeflachten ElasticSearch-Indexstruktur?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!