Maison >développement back-end >tutoriel php >Comment modéliser des données relationnelles complexes dans une structure d'index ElasticSearch aplatie ?

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-01 14:12:02759parcourir

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

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!

Déclaration:
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