Maison > base de données > tutoriel mysql > Comment optimiser la structure d'index ElasticSearch pour les liaisons à plusieurs entités ?

Comment optimiser la structure d'index ElasticSearch pour les liaisons à plusieurs entités ?

Linda Hamilton
Libérer: 2024-12-04 06:34:19
original
986 Les gens l'ont consulté

How to Optimize ElasticSearch Index Structure for Multiple Entity Bindings?

Comment configurer la structure d'index ElasticSearch avec plusieurs liaisons d'entités

Introduction

Établir un Une structure d'index ElasticSearch (ES) efficace est cruciale pour gérer et interroger efficacement les données. Lorsque vous travaillez avec plusieurs liaisons d'entités, il est essentiel d'optimiser l'index pour des performances de recherche et de récupération optimales.

Aplatir la structure des données

Dans la structure de base de données fournie, plusieurs les tableaux sont utilisés pour représenter les produits et leurs drapeaux associés. Pour simplifier l'index ES, il est recommandé d'aplatir la structure des données et de la dénormaliser. En créant des documents produits contenant toutes les informations pertinentes, y compris les indicateurs, nous éliminons la relation N:M entre les produits et les indicateurs. Cette approche permet des requêtes plus faciles sur les attributs des indicateurs.

Exemples de documents de produit

{
   "id": "00c8234d71c4e94f725cd432ebc04",
   "title": "Alpha",
   "price": 589.0,
   "flags": ["Sellout", "Top Product"]
}
{
   "id": "018357657529fef056cf396626812",
   "title": "Beta",
   "price": 355.0,
   "flags": ["Discount"]
}
{
   "id": "01a2c32ceeff0fc6b7dd4fc4302ab",
   "title": "Gamma",
   "price": 0.0,
   "flags": ["Discount"]
}
Copier après la connexion

Type de mappage de produit

Le Le type de mappage ES pour les documents du produit serait :

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

Requête SQL pour Récupération de données

Pour extraire les données requises de la base de données, une requête SQL modifiée est nécessaire :

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