Maison >développement back-end >tutoriel php >Comment modéliser des données relationnelles complexes dans une structure d'index ElasticSearch aplatie ?
Structure d'index ElasticSearch avec liaisons d'entités multiples
Comprenant la nécessité d'optimiser les structures de base de données pour l'intégration d'ElasticSearch (ES), il est essentiel d'explorer comment pour modéliser des données relationnelles complexes dans une structure d'index ES aplatie.
Liaisons d'entités multiples dans une structure plate
La dénormalisation est une technique clé pour optimiser le stockage des données. Par exemple, au lieu de maintenir une relation N:M entre les produits et les indicateurs via un tableau croisé dynamique, envisagez de créer un index ES plat dans lequel chaque document produit contient un tableau d'indicateurs associés.
Structure du document produit
Structure du document produit
{ "id": "00c8234d71c4e94f725cd432ebc04", "title": "Alpha", "price": 589.0, "flags": ["Sellout", "Top Product"] }
Les documents produits aplatis ressembleraient à la structure suivante :
Type de mappage de produit pour l'index ES
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" } } } } }
Le type de mappage ES pour cette structure aplatie ressemblerait à ce qui suit :
Extraction de données à l'aide d'une requête SQL
Pour récupérer les données nécessaires de la base de données pour le traitement de Logstash, un SQL la requête peut être utilisée comme suit :Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!