# Facettes (plusieurs valeurs pour un type de facettes) : format des données à indexer

**URL:** https://discuss.elastic.co/t/facettes-plusieurs-valeurs-pour-un-type-de-facettes-format-des-donnees-a-indexer/252869
**Category:** Discussions en français
**Created:** [October 21, 2020, 4:03pm UTC](https://discuss.elastic.co/t/facettes-plusieurs-valeurs-pour-un-type-de-facettes-format-des-donnees-a-indexer/252869 "2020-10-21T16:03:29Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![ysimonx](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ysimonx/32/77623_2.png) [@ysimonx](https://discuss.elastic.co/u/ysimonx)
#### Post date: [October 21, 2020, 4:03pm UTC](https://discuss.elastic.co/t/facettes-plusieurs-valeurs-pour-un-type-de-facettes-format-des-donnees-a-indexer/252869/1 "2020-10-21T16:03:29Z")

</div>

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à)

```auto
   "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

---

<div class="post-metadata">

### Author: ![ysimonx](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ysimonx/32/77623_2.png) [@ysimonx](https://discuss.elastic.co/u/ysimonx)
#### Post date: [October 21, 2020, 5:13pm UTC](https://discuss.elastic.co/t/facettes-plusieurs-valeurs-pour-un-type-de-facettes-format-des-donnees-a-indexer/252869/2 "2020-10-21T17:13:48Z")

</div>

J'ai pu y arriver avec l'option a)

avec le mapping

```
          "recipeFacets.santé": { type: "keyword" }

```

et avec le search

```
{
  "aggs": {
    "allsanté": {
      "terms": {
        "field": "recipeFacets.santé"
      }
    }
  }
}
```

---

<div class="post-metadata">

### Author: ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)
#### Post date: [October 22, 2020, 8:38am UTC](https://discuss.elastic.co/t/facettes-plusieurs-valeurs-pour-un-type-de-facettes-format-des-donnees-a-indexer/252869/3 "2020-10-22T08:38:36Z")

</div>

Excellent !

Petite question à propos de:

```
"recipeFacets.santé": { type: "keyword" }

```

A quoi ressemble un document type?

```auto
{
  "recipeFacets.santé": "végétarien"
}

```

ou

```auto
{
  "recipeFacets": {
    "santé": "végétarien"
  }
}

```

---

<div class="post-metadata">

### Author: ![ysimonx](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ysimonx/32/77623_2.png) [@ysimonx](https://discuss.elastic.co/u/ysimonx)
#### Post date: [October 22, 2020, 8:57am UTC](https://discuss.elastic.co/t/facettes-plusieurs-valeurs-pour-un-type-de-facettes-format-des-donnees-a-indexer/252869/4 "2020-10-22T08:57:29Z")

</div>

ni l'un, ni l'autre 🙂

j'ai fait un truc du genre

```
recipeFacets: [
"santé": "végétarien",
"santé": "sans gluten",
"santé": "sans lactose" ... etc...
"occasion": "soirée covid",
"occasion": "boum",
"occasion": "anniversaire"... etc...
]

```

et j'ai du faire un mapping à "keyword" sur  
recipeFacets.santé  
et  
recipeFacets.occasion

donc, ca marche (très) bien avec les aggs 🙂

---

<div class="post-metadata">

### Author: ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)
#### Post date: [October 22, 2020, 12:34pm UTC](https://discuss.elastic.co/t/facettes-plusieurs-valeurs-pour-un-type-de-facettes-format-des-donnees-a-indexer/252869/5 "2020-10-22T12:34:30Z")

</div>

Ce format là ne fonctionne pas. Je suppose que c'est:

```auto
{
  "recipeFacets": [
    { "santé": "végétarien" },
    { "santé": "sans gluten" }
  ]
}

```

Exact ?

---

<div class="post-metadata">

### Author: ![ysimonx](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ysimonx/32/77623_2.png) [@ysimonx](https://discuss.elastic.co/u/ysimonx)
#### Post date: [October 22, 2020, 12:58pm UTC](https://discuss.elastic.co/t/facettes-plusieurs-valeurs-pour-un-type-de-facettes-format-des-donnees-a-indexer/252869/6 "2020-10-22T12:58:16Z")

</div>

oui, c'est ca, pardon ☹

---

<div class="post-metadata">

### Author: ![ysimonx](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ysimonx/32/77623_2.png) [@ysimonx](https://discuss.elastic.co/u/ysimonx)
#### Post date: [October 22, 2020, 2:21pm UTC](https://discuss.elastic.co/t/facettes-plusieurs-valeurs-pour-un-type-de-facettes-format-des-donnees-a-indexer/252869/7 "2020-10-22T14:21:12Z")

</div>

@dadoonet : si j'avais eu Elastic en 2005, lors de la création de la marketplace de RueDuCommerce, ca aurait carrément changé la donne ...  
Nous nous sommes cassés les dents sur ce genre de sujets avec mysql ... et autres

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [November 19, 2020, 2:21pm UTC](https://discuss.elastic.co/t/facettes-plusieurs-valeurs-pour-un-type-de-facettes-format-des-donnees-a-indexer/252869/8 "2020-11-19T14:21:16Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
