Mapping use dynamic strict

I suspect you are seeing something similar to this

How the field is stored is different than how the field is represented in the source document I suspect you are looking at the source document and expecting it to change the type please read the response above and it may help clarify.

Elastic does not cast / correct the source document but it will convert if it can into the actual stored field /doc_value

So in your case if you set day=123 in the _source it looks like the integer you entered, but if you looked at the actual doc_value it would be a string.

And pretty much anything can be a string so it will almost always index a value as a string