Вы можете проверить различные поддерживаемые форматы даты на https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-date-format.html:
Правильный формат для вашего формата даты ниже
"format" : "yyyyMMdd'T'HHmmss.SSSZ"
(нет -
между yyyyMMdd)
Я только что создал индекс в формате ниже, так что вы можете попробовать сами:
{
"mappings": {
"properties": {
"date": {
"type": "date" ,
"format" : "yyyyMMdd'T'HHmmss.SSSZ" --> notice there is no `-` in yyyyymmdd
}
}
}
}
РЕДАКТИРОВАТЬ: - Согласно В последнем обновлении от OP он использует команду curl
для создания индексов, поэтому ему необходимо экранировать апостроф (''), присутствующий в поле даты T
.
Правильно curl
команда будет выглядеть так:
curl -X PUT "localhost:9500/example/_mappings?pretty" -H 'Content-Type: application/json' -d' {
"dynamic": false,
"properties" : {
"name" : {
"type" : "text"
},
"createdAt" : {
"type" : "date",
"format" : "yyyyMMdd'\''T'\''HHmmss.SSSZ" --> notice escape `T`
}
}
}'
, что дает правильный вывод в curl:
{
"acknowledged" : true
}