How do i define ElasticSearch Dynamic Templates? How do i define ElasticSearch Dynamic Templates? elasticsearch elasticsearch

How do i define ElasticSearch Dynamic Templates?


Your dynamic template is defined correctly. The issue is that you will need to index a document with the lang.en.title field in it before the dynamic template will apply the appropriate mapping. I ran the same dynamic mapping that you have defined above in your question locally and got the same result as you.

However, then I added a single document to the index.

POST /cl/titles/1{    "lang.en.title": "Knocked out"}

After adding the document, I ran the analyzer again and I got the expected output:

GET /cl/_analyze?field=lang.en.title&text=knocked{   "tokens": [      {         "token": "knock",         "start_offset": 0,         "end_offset": 7,         "type": "<ALPHANUM>",         "position": 1      }   ]}

The index needs to have a document inserted so that it can execute the defined mapping template for the inserted fields. Once that field exists in the index and has the dynamic mapping applied, _analyze API calls will execute as expected.