Bonjour,
Je découvre actuellement Elasticsearch et étant sans trop de connaissance je souhaite avoir de l'aide pour réaliser un mapping pour un jeu de quiz biblique, de la bonne manière. J'aurai besoin de quelques conseils et avis sur ce que j'ai déjà pensé.
Le jeu est multilingue. Pour l'instant j'utilise une langue par champ mais est-ce la bonne méthode dans ce cas ou faut-il plutôt utiliser un index par langue sachant que les langues des questions ne sont pas toutes mentionnées je voudrais en ajouter par la suite, au fur et à mesure. Est-ce que la modification d'un mapping sur un index avec des données est difficile ?
Pour les propositions de réponses et les thèmes j'utilise nested puisqu'il y aura une relation 1 à n, est-ce correct ?
Ici, le mapping de l'index "question" utilisé pour enregistrer des questions pour jeu de quiz biblique :
{
"mapping": {
"_doc": {
"properties": {
"answer": {
"properties": {
"en": {
"type": "text",
"analyzer": "english"
},
"es": {
"type": "text",
"analyzer": "spanish"
},
"fr": {
"type": "text",
"analyzer": "french"
},
"pt": {
"type": "text",
"analyzer": "portuguese"
}
}
},
"bible_api_reference": {
"type": "text"
},
"bible_book": {
"properties": {
"en": {
"type": "text",
"analyzer": "english"
},
"es": {
"type": "text",
"analyzer": "spanish"
},
"fr": {
"type": "text",
"analyzer": "french"
},
"pt": {
"type": "text",
"analyzer": "portuguese"
}
}
},
"comment": {
"properties": {
"en": {
"type": "text",
"analyzer": "english"
},
"es": {
"type": "text",
"analyzer": "spanish"
},
"fr": {
"type": "text",
"analyzer": "french"
},
"pt": {
"type": "text",
"analyzer": "portuguese"
}
}
},
"level": {
"type": "integer"
},
"propositions": {
"properties": {
"en": {
"type": "nested",
"properties": {
"proposition": {
"type": "text",
"analyzer": "english"
}
}
},
"es": {
"type": "nested",
"properties": {
"proposition": {
"type": "text",
"analyzer": "spanish"
}
}
},
"fr": {
"type": "nested",
"properties": {
"proposition": {
"type": "text",
"analyzer": "french"
}
}
},
"pt": {
"type": "nested",
"properties": {
"proposition": {
"type": "text",
"analyzer": "portuguese"
}
}
}
}
},
"question": {
"properties": {
"en": {
"type": "text",
"analyzer": "english"
},
"es": {
"type": "text",
"analyzer": "spanish"
},
"fr": {
"type": "text",
"analyzer": "french"
},
"pt": {
"type": "text",
"analyzer": "portuguese"
}
}
},
"themes": {
"properties": {
"en": {
"type": "nested",
"properties": {
"theme": {
"type": "text",
"analyzer": "english"
}
}
},
"es": {
"type": "nested",
"properties": {
"theme": {
"type": "text",
"analyzer": "spanish"
}
}
},
"fr": {
"type": "nested",
"properties": {
"theme": {
"type": "text",
"analyzer": "french"
}
}
},
"pt": {
"type": "nested",
"properties": {
"theme": {
"type": "text",
"analyzer": "portuguese"
}
}
}
}
}
}
}
}
}