Морфлайны исключение формата даты

Я хочу преобразовать поле в формат даты следующим образом:

{ 
    convertTimestamp {
        field : document_date
        inputFormats : ["yyyy-MM-dd"]
        inputTimezone : UTC
        outputFormat : "yyyy"
        outputTimezone : UTC
}

Формат ввода yyyy-MM-dd и я хочу вывести только часть года yyyy,

Но когда я запускаю его - у меня есть исключение: org.apache.solr.common.SolrException: Invalid Date String:'1992-06-04',

Я читал здесь, что морфлайн требует обязательного формата yyyy-MM-dd'T'HH:mm:ss'Z' но вы можете найти на Github morphline, что TimestampBuilder имеет формат даты по умолчанию, например:

DEFAULT_DATE_FORMATS.add("yyyy-MM-dd"); 

Исключение сохраняется, даже если я изменяю формат вывода на yyyy-MM-dd, Он исчезает только тогда, когда я добавляю постоянный суффикс, например: T23:59:59Z

1 ответ

Решение

Это не о чем Morphline's формат по умолчанию. Я довольно долго работал с Solr, и единственный формат, который он поддерживает yyyy-MM-dd'T'HH:mm:ss'Z', Ниже приведена очень описательная документация об этом только на веб-странице документации Solr.

Кроме того, ссылка на Morphline's Github Code утверждает в своих последних комментариях эту вещь A suite of default date formats that can be parsed,и, таким образом, преобразован в конкретный формат Solr. Найти ниже изображение для справки

Таким образом, в основном, он также соответствует стандартному формату Solr, и в конечном итоге такие форматы просто делают хороших кандидатов для преобразования в формат Solr. Надеюсь это поможет:) .

Другие вопросы по тегам