Проблема с датой в SOLR с иногда добавляемыми миллисекундами - PullRequest
0 голосов
/ 10 июня 2019

Я использую Solr 7-4 и получаю

java.time.format.DateTimeParseException: текст '2017-03-15T20: 02: 52.335Z' не может быть проанализирован в индексе19

, когда я пытаюсь проанализировать дату, которая хранится в индексе, с

LocalDate.parse(documentModifDateAsString,SOLR_DATE_TIME_FORMAT);

с SOLR_DATE_TIME_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'"); (только с точностью до секунд, но не с точностью до миллис)

Я понимаю исключение, но я не знаю, как могла появиться такая дата, поскольку Solr должен хранить все даты с шаблоном YYYY-MM-DDThh:mm:ssZ.

У моего поля даты есть имяmodifiedDate_dt и managed-schema.xml показывает

<dynamicField name="*_dt" type="pdate" indexed="true" stored="true"/>

Как я могу заставить Solr (или кого-либо еще) хранить даты только до секунд?

До сих пор, чтобы смягчить это, я ловил исключение и пытался проанализировать до миллис:

SOLR_DATE_TIME_FORMAT_UP_TO_MILLIS = DateTimeFormatter.ofPattern(
            "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")

Но я должен также проанализировать с S и SS.Это выглядит немного неловко.

Любая помощь приветствуется,

...