# Suggest API

**URL:** <https://discuss.elastic.co/t/suggest-api/781>\
**Category:** Discussions en français\
**Created:** [May 16, 2015, 6:16am UTC](https://discuss.elastic.co/t/suggest-api/781 "2015-05-16T06:16:34Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Florian\_Grousset](https://avatars.discourse-cdn.com/v4/letter/f/f6c823/32.png) [@Florian\_Grousset](https://discuss.elastic.co/u/Florian_Grousset)\
**Post date:** [May 16, 2015, 6:16am UTC](https://discuss.elastic.co/t/suggest-api/781/1 "2015-05-16T06:16:34Z")

</div>

Bonjour,

Je souhaites utiliser la nouvelle fonctionnalité "suggest" afin de faire une liste de suggestion dans un champ.

Voici comment j'ai défini le mapping sur mon champ :

```
"suggest":{
  "type": "completion",
  "analyzer": "suggest_analyzer",
  "max_input_length": 50,
  "preserve_separators": true,
  "payloads": true,
  "preserve_position_increments": true
}

```

L'analyzer que j'utilise est défini de la sorte :

```
"suggest_analyzer": {
  "tokenizer":"standard",
  "filter":[
    "standard",
    "lowercase",
    "accent_folding"
  ]
}

```

Le filtre utilisé pour cet analyzer est le suivant :

```
"accent_folding":{
  "type":"icu_folding",
  "replace":"false"
}

```

Les données de ce champ sont en Français et comportent donc des accents ou pas.  
Ex : démolition, dentiste, dépannage

L'indexation des documents contient le suggest de la sorte :

```
"suggest" : {
  "input" : ["démolition"],
  "output" : "démolition"
  "payload" : {"id" : 123, "name" : "démolition"}
  "weight" : 1
}

```

Lors de l'utilisation du suggest, j'utilise la requête suivante :

```
GET /mon_index/_suggest?pretty=true
{
  "category_suggest" : {
    "text" : "de",
    "completion" : {
      "field" : "suggest",
      "size" : "10"
    }
  }
}

```

Le problème que je rencontre est que les résultat rencontrés sont classés par ordre alphabétique ascendant, ce qui considère que la lettre "e" est avant la lettre "é".  
Je me retrouve donc avec les résultats dans cet ordre : **_dentiste, démolition, dépannage_**  
Or, j'aimerai que les accents ne soient pas pris en compte lors du classement.  
A savoir : **_démolition, dentiste, dépannage_**

J'ai tenté certains analyzer et filters basés sur ICU afin d'enlever les accents dans l'index\_analyzer sans succès.

En solution de contournement j'ai retirer les accents avant de remplir l'output car apparement le classement est fait sur ce champ et j'utilise la valeur du champ name que je rempli dans le payload. J'aimerai plutôt utiliser la valeur du champ output ce qui réduirai la taille du flux de retour.

Pourriez-vous m'éclairer sur la bonne manière de procéder ?  
Merci.

Florian Grousset

---

<div class="post-metadata">

**Author:** ![Camilo\_Sierra](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/camilo_sierra/32/14397_2.png) [@Camilo\_Sierra](https://discuss.elastic.co/u/Camilo_Sierra)\
**Post date:** [May 26, 2015, 7:44am UTC](https://discuss.elastic.co/t/suggest-api/781/2 "2015-05-26T07:44:57Z")

</div>

Bonjour @Florian_Grousset , il faut utiliser le filter [ASCII Folding](https://www.elastic.co/guide/en/elasticsearch/reference/1.3/analysis-asciifolding-tokenfilter.html) pour eviter le probleme avec les accents (pour plus d'info tu peut lire aussi [https://www.elastic.co/guide/en/elasticsearch/guide/master/asciifolding-token-filter.html](https://www.elastic.co/guide/en/elasticsearch/guide/master/asciifolding-token-filter.html) )

---

<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:** [July 6, 2017, 1:52pm UTC](https://discuss.elastic.co/t/suggest-api/781/3 "2017-07-06T13:52:18Z")

</div>


