Bonjour
Je souhaite monter une recherche full-text avec filtre par facettes
ce sont des recettes de cuisine, et je souhaite pouvoir filtrer mes recherches sur des facettes qui ont plusieurs valeurs possibles lors de l'indexation
par exemple, j'ai des recettes qui sont "sans-gluten" ET "végétarienne"
je peux préciser cette facette "santé" de plusieurs manieres quand j'indexe un document
a) un array de couple "clé" -> "valeur"
"Facets" : [
{ 'santé': 'végétarien' },
{ 'santé': 'sans gluten' },
{ 'santé': 'sans lactose' },
{ 'public: 'familial' },
{ 'public: 'enfants' },
{ 'public: 'ados' },
{ 'public: 'amis' },
{ 'public: 'jeunes' },
{ 'public: 'étudiants' },
{ 'public: 'potes' },
]
b) un array de couples "clé -> 'array de valeurs possibles'
"Facets" : [
'santé': ['végétarien', 'sans gluten', 'sans lactose' }] ,
'public': ['familial','enfants','ados','amis','jeunes,'étudiants','potes']
]
c) un tableau où le "type" de facette est une valeur ... (je le sens pas trop celui là)
"Facets" : [
{ type: 'santé', value: 'végétarien' },
{ type: 'santé', value: 'sans gluten' },
{ type: 'santé', value: 'sans lactose' },
{ type: 'public', value: 'familial' },
{ type: 'public', value: 'enfants' },
{ type: 'public', value: 'ados' },
{ type: 'public', value: 'amis' },
{ type: 'public', value: 'jeunes' },
{ type: 'public', value: 'étudiants' },
{ type: 'public', value: 'potes' },
]
je peux naviguer dans les recettes en choisissant les recettes qui sont "végétarien" et "sans gluten"
(j'ai testé avec le cas "a", nickel, ca marche avec 2 clauses "query bool must match")
et voila ce que je voudrais faire :
si je filtre la liste des recettes dont santé = "sans gluten", je veux pouvoir, en aggrégation,
-
récupérer le nombre des recettes qui seraient "sans gluten" et qui seraient "végétarien"
-
récupérer le nombre des recettes qui seraient "sans gluten" et qui seraient "sans lactose"
Y'a t il un format à privilégier lors de l'indexation de mes recettes dans elastic ?
merci par avance de vos conseils expérimentés