# ElasticSearch : Custom Analyzer

**URL:** <https://discuss.elastic.co/t/elasticsearch-custom-analyzer/2432>\
**Category:** Discussions en français\
**Created:** [June 11, 2015, 9:43am UTC](https://discuss.elastic.co/t/elasticsearch-custom-analyzer/2432 "2015-06-11T09:43:34Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![maaxow](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/maaxow/32/28520_2.png) [@maaxow](https://discuss.elastic.co/u/maaxow)\
**Post date:** [June 11, 2015, 9:43am UTC](https://discuss.elastic.co/t/elasticsearch-custom-analyzer/2432/1 "2015-06-11T09:43:34Z")

</div>

Bonjour,

J'utilise Elasticsearch 1.6.0, et je m'intéresse aux custom analyzer.  
Je pense avoir bien indexé mes settings avec mon analyzer, mais lorsque j'essaie d'inserer un mapping qui utilise cet analyzer, il me renvoie "Analyzer [my\_analyzer] not found for field [...]".

Voici comment j'index mon analyzer :

```
PUT localhost:9200/foo2/
{
  "index" : {
    "analysis" : {
      "analyzer" : {
        "my_analyzer" : {
          "type" : "custom",
          "tokenizer" : "my_tokenizer",
          "filter" : ["my_tokenfilter"]
        }
      },
      "tokenizer" : {
        "my_tokenizer" : {
          "type" : "pattern",
          "max_token_length" : 100
        }
      },
      "filter" : {
        "my_tokenfilter" : {
          "type" : "pattern_capture",
          "preserve_orignial" : 1,
          "patterns" : [""]
        }
      }
    }
  }
}

```

Dites moi si j'ai fais une erreur.  
Merci beaucoup !

Maxime

---

<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:** [June 11, 2015, 10:01am UTC](https://discuss.elastic.co/t/elasticsearch-custom-analyzer/2432/2 "2015-06-11T10:01:11Z")

</div>

Quelle requêtes fais-tu pour définir l'analyseur ?

---

<div class="post-metadata">

**Author:** ![maaxow](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/maaxow/32/28520_2.png) [@maaxow](https://discuss.elastic.co/u/maaxow)\
**Post date:** [June 11, 2015, 10:03am UTC](https://discuss.elastic.co/t/elasticsearch-custom-analyzer/2432/3 "2015-06-11T10:03:32Z")

</div>

Celle que j'ai indiqué dans le premier message, c'est ma requête pour le créer, mais je ne sais pas si elle est exacte ou non.  
J'ai vu sur beaucoup de forum qu'il faut mettre "settings" au dessus de "analysis", et sur d'autre forum qu'il faut mettre "index" au dessus de "analysis", donc je suis un peu perdu, et je ne sais pas quel est la bonne solution.

---

<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:** [June 11, 2015, 10:17am UTC](https://discuss.elastic.co/t/elasticsearch-custom-analyzer/2432/4 "2015-06-11T10:17:52Z")

</div>

Je renouvèle ma question. "Quelle commande HTTP exacte passes-tu à elasticsearch?"  
Quel est le script qui permet de reproduire ton problème ?

Je t'invite à lire cet article: [A propos de la catégorie "Discussions en français"](https://discuss.elastic.co/t/a-propos-de-la-categorie-discussions-en-francais/41)

---

<div class="post-metadata">

**Author:** ![maaxow](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/maaxow/32/28520_2.png) [@maaxow](https://discuss.elastic.co/u/maaxow)\
**Post date:** [June 11, 2015, 12:06pm UTC](https://discuss.elastic.co/t/elasticsearch-custom-analyzer/2432/5 "2015-06-11T12:06:26Z")

</div>

Je n'utilise pas les scripts, mais je vais essayer de le reproduire. J'utilise une application java pour faire mes requètes.  
Mon problème survient au moment où j'essaie de créer un nouveau type, avec un mapping que j'ai spécifié.

```
POST localhost:9200/foo2/_mapping/instanceDescription
{
  "foo2" : {
    "properties": {
      "descriptionCode": {
        "type": "string",
        "index" : "analyzed",
        "analyzer" : "my_analyzer"
      }
    }
  }
}

```

Je n'ai pas précisé les autres champs, ce sont de simples champs sans interets.

---

<div class="post-metadata">

**Author:** ![maaxow](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/maaxow/32/28520_2.png) [@maaxow](https://discuss.elastic.co/u/maaxow)\
**Post date:** [June 16, 2015, 7:17am UTC](https://discuss.elastic.co/t/elasticsearch-custom-analyzer/2432/6 "2015-06-16T07:17:11Z")

</div>

Bonjour,

Mon problème est toujours là. Je vous le rappelle.  
J'ai créé mon propre analyzer (voire le premier post). Et lorsque j'essaie d'insérer mon mapping qui utilise mon analyzer. Je me retrouve avec une erreur de type :

```
Analyzer [my_analyzer] not found for field [descriptionCode].

```

Mes recherches sur google ne me mène nulle part. Je ne vois toujours pas ou le soucis se trouve, j'ai vérifié et re-vérifié les noms, la syntaxe, mais rien n'y fais.  
Merci de votre aide.

---

<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:** [June 16, 2015, 7:59am UTC](https://discuss.elastic.co/t/elasticsearch-custom-analyzer/2432/7 "2015-06-16T07:59:46Z")

</div>

Je te rappelle aussi ma réponse:

> Quel est le script qui permet de reproduire ton problème ?

A moins que quelqu'un d'autre n'ait du temps et l'envie de créer lui-même un script pour reproduire ton problème?

---

<div class="post-metadata">

**Author:** ![maaxow](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/maaxow/32/28520_2.png) [@maaxow](https://discuss.elastic.co/u/maaxow)\
**Post date:** [June 16, 2015, 8:34am UTC](https://discuss.elastic.co/t/elasticsearch-custom-analyzer/2432/8 "2015-06-16T08:34:13Z")

</div>

Ceci n'est pas une script ?

```
PUT localhost:9200/foo2/
{
  "index" : {
    "analysis" : {
      "analyzer" : {
        "my_analyzer" : {
          "type" : "custom",
          "tokenizer" : "my_tokenizer",
          "filter" : ["my_tokenfilter"]
        }
      },
      "tokenizer" : {
        "my_tokenizer" : {
          "type" : "pattern",
          "max_token_length" : 100
        }
      },
      "filter" : {
        "my_tokenfilter" : {
          "type" : "pattern_capture",
          "preserve_orignial" : 1,
          "patterns" : [""]
        }
      }
    }
  }
}

POST localhost:9200/foo2/_mapping/instanceDescription
{
  "instanceDescription" : {
    "properties": {
      "descriptionCode": {
        "type": "string",
        "index" : "analyzed",
        "analyzer" : "my_analyzer"
      }
    }
  }
}
```

---

<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:** [June 16, 2015, 8:53am UTC](https://discuss.elastic.co/t/elasticsearch-custom-analyzer/2432/9 "2015-06-16T08:53:35Z")

</div>

Voici la documentation : [https://www.elastic.co/guide/en/elasticsearch/guide/current/custom-analyzers.html#\_creating\_a\_custom\_analyzer](https://www.elastic.co/guide/en/elasticsearch/guide/current/custom-analyzers.html#_creating_a_custom_analyzer)

il faut utiliser **settings** de toute évidence. Tu peux vérifier sa présence ensuite avec: [http://localhost:9200/foo2/\_settings?pretty](http://localhost:9200/foo2/_settings?pretty) dans un navigateur et avoir:

```
{
  "foo2" : {
    "settings" : {
      "index" : {
        [...]
        "analysis" : {
          "analyzer" : {
            "my_analyzer" : {
              "type" : "custom",
              "filter" : [...],
              "tokenizer" : "[...]"
            }
          }
        },
        [...]
      }
    }
  }
}
```

---

<div class="post-metadata">

**Author:** ![maaxow](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/maaxow/32/28520_2.png) [@maaxow](https://discuss.elastic.co/u/maaxow)\
**Post date:** [June 16, 2015, 9:38am UTC](https://discuss.elastic.co/t/elasticsearch-custom-analyzer/2432/10 "2015-06-16T09:38:28Z")

</div>

Merci de ces informations.  
Je viens de tester manuellement les petits scripts que je vous ai transmit, et l'erreur n'apparait pas.  
Donc je pense que mon problème vient plutôt de l'application java qui insert le settings et mapping grace au fichier JSON qui je lui passe en paramètre.  
Je vais chercher de ce côté.

---

<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/elasticsearch-custom-analyzer/2432/11 "2017-07-06T13:52:09Z")

</div>


