Тип поля ElasticSearch дата вставки даты ('Y-m-d H: i: s')

Я пытаюсь вставить значение даты и времени в свой индекс Es. Но я не понимаю этого прямо сейчас.

Если я делаю пользовательское сопоставление, например. "eventDate" => "date" и попробуйте проиндексировать документ с помощью "eventDate" => date('Y-m-d H:i:s'), я получаю эту ошибку:

IllegalArgumentException[Недопустимый формат: \"2014-03-13 15:36:15\" имеет неверный формат в \"15:36:15\"]; ","статус":400}

Я понимаю это, но я не знаю, что я должен изменить?!?! Я хочу использовать это поле в гистограмме Kibana позже, так что это должно быть поле даты.

В документах Es я видел такой формат даты: "Y-m-dTH:i:s"! Что означает эта "Т" посередине?? И как я могу проиндексировать это именно так?

Спасибо за вашу помощь. Марк


person Marc    schedule 13.03.2014    source источник


Ответы (1)


T — это просто разделитель даты. Дополнительную информацию об этом можно прочитать в Википедии:

Один момент времени может быть представлен объединением полного выражения даты, буквы T в качестве разделителя и допустимого выражения времени. Например, "2007-04-05T14:30". Если требуется указатель часового пояса, он следует за объединенными датой и временем. Например, "2007-04-05T14:30Z" или "2007-04-05T12:30-02:00".

Можно использовать как базовый, так и расширенный форматы, но и дата, и время должны использовать один и тот же формат. Выражение даты может быть календарем, неделей или порядковым номером и должно использовать полное представление. Выражение времени может использовать пониженную точность. По обоюдному согласию разрешается опускать символ «Т».

А для ошибки индексации попробуйте поставить разделитель T, а также часовой пояс (можно просто поставить Z, значит UTC). После этого вы сможете строить графики в Kibana.

person Pigueiras    schedule 13.03.2014