Я пытаюсь получить Elasticsearch для распознавания строк в формате yyyy-MM-dd HH:mm:ss
в качестве полей даты. Я создал динамический формат даты и применил это к отображению по умолчанию. Он отлично работает при индексировании документов моего первого типа - любые новые поля, в которых данные находятся в этом формате, инициализируются как поля даты.Как применить динамические форматы дат к нескольким типам в Elasticsearch?
Проблема возникает, когда я пытаюсь создать документы нового типа, но с полями формата даты с тем же именем, что и в моем первом типе. Они выходят из строя с ошибкой даты .
Вот пример набора Kibana команды, чтобы продемонстрировать:
DELETE /datetest
PUT /datetest
PUT /datetest/_mapping/_default_
{
"dynamic_date_formats" : ["yyyy-MM-dd HH:mm:ss"]
}
PUT /datetest/doc/1
{
"date" : "2015-01-01 12:00:00"
}
# This one works fine
PUT /datetest/otherdoc/1
{
"otherdate" : "2015-01-01 12:00:00"
}
# This one does not
PUT /datetest/otherdoc/2
{
"date" : "2015-01-01 12:00:00"
}
Последняя команда дает эту ошибку: "Invalid format: \"2015-01-01 12:00:00\" is malformed at \" 12:00:00\""
Я знаю, что поля с одинаковым именем в разных типах должны иметь те же данные, тип, но в этом случае я хочу, чтобы у них был тот же тип данных - дата. Я мог вручную создавать сопоставления для каждого нового типа, но я хочу, чтобы он автоматически поддерживал новые типы, добавляемые к моим исходным данным. Кажется, это то, что должен делать динамический формат даты. Я здесь что-то не так?
Великие умы думают как;) –