Comment modéliser des données relationnelles complexes dans une structure d'index ElasticSearch aplatie ?

Mary-Kate Olsen
Libérer: 2024-11-01 14:12:02
original
662 Les gens l'ont consulté

How to Model Complex Relational Data Into a Flattened ElasticSearch Index Structure?

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"]
}
Copier après la connexion

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"
                }
            }
        }
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!