Heim >Datenbank >MySQL-Tutorial >Wie strukturiert man einen Elasticsearch-Index für mehrere Entitätsbeziehungen?

Wie strukturiert man einen Elasticsearch-Index für mehrere Entitätsbeziehungen?

Susan Sarandon
Susan SarandonOriginal
2024-11-29 16:32:10840Durchsuche

How to Structure an Elasticsearch Index for Multiple Entity Relationships?

So strukturieren Sie den ElasticSearch-Index mit mehreren Entitätsbindungen

Einführung

Integration von ElasticSearch (ES ) in bestehende Anwendungen wirft häufig die Frage auf, wie komplexe Datenbankstrukturen im ES-Index repliziert werden können. Dieser Artikel befasst sich mit der besonderen Herausforderung der Konfiguration der Indexstruktur beim Umgang mit mehreren Entitätsbindungen.

Datenbankstruktur

Betrachten Sie die folgende Datenbankstruktur aus einer E-Commerce-Anwendung:

  • Produkte (ID, Titel, Preis)
  • Flags (ID, title)
  • FlagsProducts (Pivot-Tabelle mit Produkt-ID, Flag-ID, externer ID)

Abflachung der Struktur

Zur Optimierung der Abfrage und Vereinfachung Für die Verwendung wird empfohlen, die Daten durch Abflachen der Struktur zu denormalisieren. Dazu gehört die Erstellung von Produktdokumenten, die alle relevanten Informationen aus den anderen Tabellen enthalten:

{
"id": "00c8234d71c4e94f725cd432ebc04",
"title": "Alpha",
"price": 589.0,
"flags": ["Sellout", "Top Product"]
}

ES-Produktzuordnung

Der entsprechende ES-Produktzuordnungstyp wäre:

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"
}
}
}
}
}

Logstash-SQL-Abfrage

Um den ES-Index zu füllen, a Die Logstash-JDBC-Eingabe kann mit der folgenden Abfrage verwendet werden:

Das obige ist der detaillierte Inhalt vonWie strukturiert man einen Elasticsearch-Index für mehrere Entitätsbeziehungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn