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!