Hintergrund
ElasticSearch (ES) wird häufig in Legacy-Anwendungen integriert stellt aufgrund unterschiedlicher Datenstrukturen und Indexierungsanforderungen Herausforderungen dar. Bei komplexen relationalen Schemata kann die Denormalisierung von Daten und die Reduzierung von Entitäten die Leistung verbessern und Abfragen vereinfachen.
Frage:
Wie kann ich eine Datenbank mit mehreren Entitätsbindungen reduzieren (Nr :m Beziehungen) für eine optimale Indizierung in ES?
Lösung:
1. Daten denormalisieren:
Erstellen Sie Produktdokumente, die alle relevanten Daten enthalten, einschließlich eingebetteter Arrays verwandter Entitäten. Hier ist ein Beispielschema:
{ "id": "00c8234d71c4e94f725cd432ebc04", "title": "Alpha", "price": 589.0, "flags": ["Sellout", "Top Product"] }
2. Zuordnungstyp:
Konfigurieren Sie den Zuordnungstyp so, dass er dem neuen Schema entspricht:
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" } } } } }
3. SQL-Abfrage:
Rufen Sie Daten aus der Datenbank mithilfe einer Abfrage ab, die verwandte Entitäten verbindet und Flag-Titel verkettet:
Das obige ist der detaillierte Inhalt vonWie optimiert man die ElasticSearch-Indexstruktur mit mehreren Entitätsbindungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!