Problème :
Implémentation d'ElasticSearch (ES) pour un e-mail existant -application de commerce avec une base de données MySQL, comment la structure d'index doit-elle être configurée pour représenter un schéma de base de données complexe impliquant plusieurs entités liaisons ?
Réponse :
Approche de dénormalisation :
Pour gérer les liaisons de plusieurs entités, une approche dénormalisée est recommandée. Aplatissez la structure des données en créant un mappage un-à-un entre les documents et les entités. Dans ce cas, créez un type de document unique appelé « produit » qui comprend tous les champs nécessaires des tables « Produits », « Flags » et « flagsProducts ».
Structure du document produit :
{ "id": "00c8234d71c4e94f725cd432ebc04", "title": "Alpha", "price": 589.0, "flags": ["Sellout", "Top Product"] }
Mappage ElasticSearch :
Le type de mappage pour le L'index "produit" ressemblerait à :
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 l'extraction de données :
Pour extraire les données nécessaires de la base de données, utilisez la requête SQL suivante :
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!