Maison > développement back-end > tutoriel php > Comment optimiser la structure d'index ElasticSearch avec plusieurs liaisons d'entités ?

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

Mary-Kate Olsen
Libérer: 2024-10-29 22:58:29
original
955 Les gens l'ont consulté

How to Optimize ElasticSearch Index Structure with Multiple Entity Bindings?

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

Contexte

Intégrer souvent ElasticSearch (ES) avec des applications existantes pose des défis en raison des différences dans les structures de données et les exigences d’indexation. Pour les schémas relationnels complexes, la dénormalisation des données et l'aplatissement des entités peuvent améliorer les performances et simplifier les requêtes.

Question :

Comment puis-je aplatir une base de données avec plusieurs liaisons d'entités (n :m relations) pour une indexation optimale en ES ?

Solution :

1. Dénormaliser les données :

Créez des documents produits qui incluent toutes les données pertinentes, y compris des tableaux intégrés d'entités associées. Voici un exemple de schéma :

{
  "id": "00c8234d71c4e94f725cd432ebc04",
  "title": "Alpha",
  "price": 589.0,
  "flags": ["Sellout", "Top Product"]
}
Copier après la connexion

2. Type de mappage :

Configurez le type de mappage pour qu'il corresponde au nouveau schéma :

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

3. Requête SQL :

Récupérer les données de la base de données à l'aide d'une requête qui joint les entités associées et concatène les titres des drapeaux :

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