# Java Client Custom tokenizer Cannot map type

**URL:** <https://discuss.elastic.co/t/java-client-custom-tokenizer-cannot-map-type/308770>\
**Category:** Elasticsearch\
**Tags:** language-clients\
**Created:** [July 4, 2022, 3:44am UTC](https://discuss.elastic.co/t/java-client-custom-tokenizer-cannot-map-type/308770 "2022-07-04T03:44:59Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Huyueeer](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/huyueeer/32/107879_2.png) [@Huyueeer](https://discuss.elastic.co/u/Huyueeer)\
**Post date:** [July 4, 2022, 3:44am UTC](https://discuss.elastic.co/t/java-client-custom-tokenizer-cannot-map-type/308770/1 "2022-07-04T03:44:59Z")

</div>

**I looked through the previous problem records, and my question should be: does the latest javaapi support custom tokenizer**

Excuse me, I have some questions about the Java client. I need to register setting in elastic that supports the "pinyin" plug-in. When I write this, I find that the plug-in cannot be configured. What should I do?

```auto
Reader pinyinJson = new StringReader(
                    "{\n" +
                            " \"type\": \"pinyin\",\n" +
                            " \"keep_separate_first_letter\": false,\n" +
                            " \"keep_full_pinyin\": true,\n" +
                            " \"keep_original\": true,\n" +
                            " \"limit_first_letter_length\": 16,\n" +
                            " \"lowercase\": true,\n" +
                            " \"remove_duplicated_term\": true\n" +
                            "}"
            );
            tokenizerMap.put("pinyin_tokenizer", new Tokenizer.Builder() //<---this
                    .definition(new TokenizerDefinition.Builder()
                            .withJson(pinyinJson).build()).build());

CreateIndexResponse createIndexResponse = elasticClient.indices().create(c -> c
                    .index(index)
                    .aliases(aliases, a -> a
                            .isWriteIndex(true))
                    .settings(s -> s
                            .analysis(a -> a
                                    .filter(filterMap)
                                    .normalizer(normalizerMap)
                                    .analyzer(analyzerMap)
                                    .tokenizer(tokenizerMap))
                            .numberOfShards("1")
                            .numberOfReplicas("1"))
                    .mappings(typeMapping));

```

The error message is

```auto
Caused by: jakarta.json.stream.JsonParsingException: Unknown field 'pinyin' for type 'co.elastic.clients.elasticsearch._types.analysis.TokenizerDefinition$Builder'
	at co.elastic.clients.json.ObjectDeserializer.parseUnknownField(ObjectDeserializer.java:213)
	at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:190)
	at co.elastic.clients.util.WithJsonObjectBuilderBase.withJson(WithJsonObjectBuilderBase.java:66)
	at co.elastic.clients.json.WithJson.withJson(WithJson.java:57)
	at com.inventec.itc.service.elastic.ElasticIndexBuilder.lambda$createIndex$0(ElasticIndexBuilder.java:238)
	at co.elastic.clients.elasticsearch._types.analysis.Tokenizer$Builder.definition(Tokenizer.java:149)
	at com.inventec.itc.service.elastic.ElasticIndexBuilder.createIndex(ElasticIndexBuilder.java:237)
	at com.inventec.itc.service.elastic.ElasticIndexBuilder.indexBuilder(ElasticIndexBuilder.java:42)
	at com.inventec.itc.factory.ElasticInitFactory.afterPropertiesSet(ElasticInitFactory.java:25)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)
	... 86 more

```

---

<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:** [August 1, 2022, 3:45am UTC](https://discuss.elastic.co/t/java-client-custom-tokenizer-cannot-map-type/308770/2 "2022-08-01T03:45:17Z")

</div>

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