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
Linda Hamiltonoriginal
2024-12-04 06:34:191055parcourir

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

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

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!

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