# API analyzer et option field

**URL:** https://discuss.elastic.co/t/api-analyzer-et-option-field/61774
**Category:** Discussions en français
**Created:** [September 29, 2016, 7:10am UTC](https://discuss.elastic.co/t/api-analyzer-et-option-field/61774 "2016-09-29T07:10:25Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![ChristopheBoucaut](https://avatars.discourse-cdn.com/v4/letter/c/54ee81/32.png) [@ChristopheBoucaut](https://discuss.elastic.co/u/ChristopheBoucaut)
#### Post date: [September 29, 2016, 7:10am UTC](https://discuss.elastic.co/t/api-analyzer-et-option-field/61774/1 "2016-09-29T07:10:25Z")

</div>

Bonjour,

Préparant la migration d'ES 1.7 vers ES 2.x, j'ai une erreur dans l'un de mes tests qui vérifie mon analyzer custom via l'API ES dédiée.

Ce que j'ai :

Mon mapping (en version allégée) :

```json
"livre": {
    "properties": {
        "auteur": {
          "type": "string",
          "analyzer": "patronyme"
        }
    }
}

```

Patronyme correspond à mon analyzer custom qui est placé dans mon index.

Ensuite, je souhaite vérifier que mon analyzer fonctionne correctement, j'envoie donc via l'API :

```auto
GET mon_index/_analyze
{
  "field" : "livre.auteur",
  "text" : "d'estas"
}

```

Sur la version 1.7 d'ES j'obtiens bien ce que j'attends de mon analyzer mais en version 2.4 pas du tout. J'essaye de creuser et un moment j'essaye en ne précisant pas le type mais directement le field comme ceci :

```auto
GET mon_index/_analyze
{
  "field" : "auteur",
  "text" : "d'estas"
}

```

Et dans ce cas, tout est bon. J'en déduis d'après la doc que dans le premier cas il n'a pas trouvé mon analyzer et qu'il a utilisé celui par défaut. Cependant dans la [documentation](https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-analyze.html), il précise bien `"field" : "obj1.field1"`. obj1 me semble être le type (donc dans mon cas : livre) et field le champs portant l'analyzer (donc dans mon cas : auteur).

Etant donné que depuis ES 2.0 il me semble que l'on ne peut plus avoir 2 analyzers différents pour un même field d'un type à l'autre, je trouve cela logique qu'il n'y ait plus besoin de préciser le type. Donc ai-je mal compris la documentation ? Y a-t-il eu un couac dans la documentation ? Est-ce que obj1 représente un field avec comme propriété field1 (ce qui ne serait pas super beau au niveau des noms) ?

Merci par avance pour tout éclaircissement que vous pourrez m'apporter.

---

<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: [September 30, 2016, 10:20am UTC](https://discuss.elastic.co/t/api-analyzer-et-option-field/61774/2 "2016-09-30T10:20:23Z")

</div>

Dans l'exemple de la documentation, en gros, on présume que tu as un document:

```auto
{
  "obj1": {
    "field1": "xyz"
  }
}

```

Ce que tu décris est un breaking change de la version 2.0: [https://www.elastic.co/guide/en/elasticsearch/reference/current/breaking\_20\_mapping\_changes.html#\_type\_name\_prefix\_removed](https://www.elastic.co/guide/en/elasticsearch/reference/current/breaking_20_mapping_changes.html#_type_name_prefix_removed)

---

<div class="post-metadata">

### Author: ![ChristopheBoucaut](https://avatars.discourse-cdn.com/v4/letter/c/54ee81/32.png) [@ChristopheBoucaut](https://discuss.elastic.co/u/ChristopheBoucaut)
#### Post date: [September 30, 2016, 11:58am UTC](https://discuss.elastic.co/t/api-analyzer-et-option-field/61774/3 "2016-09-30T11:58:02Z")

</div>

Okey, merci pour la confirmation (je n'étais pas descendu jusqu'en bas de la page de BC \>\<). Je voulais en être sûr avant de l'appliquer dans mon code.

---

<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:45pm UTC](https://discuss.elastic.co/t/api-analyzer-et-option-field/61774/4 "2017-07-06T13:45:14Z")

</div>


