Упругий поиск - проблема с ошибкой разбора и поиском - PullRequest
0 голосов
/ 22 мая 2019

У меня есть следующий код:

List<LawEntry> repealingLaw = findRepealingLawByDate(date);

И интерфейс следующий:

public interface LawEntryRepository extends ElasticsearchRepository<LawEntry, String> {

        public Page<LawEntry> findByLawNumberStartingWith(String LawNumber, Pageable pageable);

        public List<LawEntry> findAllByRepealingTrueAndRepealingDateBetween(Date todayMin, Date todayMax);

Я получаю следующее исключение:

Caused by: java.lang.IllegalArgumentException: Parse failure at index [0] of [Wed May 22 00:00:00 CEST 2019]
    at org.elasticsearch.common.joda.DateMathParser.parseDateTime(DateMathParser.java:207)
    ... 25 common frames omitted

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

Обновление

Пожалуйста, также найдите определение LawEntry:

@Document(indexName = "law-index", type = "law-type") @Data @Builder @NoArgsConstructor @AllArgsConstructor
    @Setting(settingPath = "/elastic/settings.json")
    public static class LawEntry { 

        @Id private String id;

        @Field(type = FieldType.Text, analyzer="nGram_analyzer", searchAnalyzer="whitespace_analyzer")
        private String autocomplete;

        private @Field(type = FieldType.Text, analyzer="nGram_analyzer", searchAnalyzer="whitespace_analyzer")  String title;
        private @Field(type = FieldType.Text, analyzer="nGram_analyzer", searchAnalyzer="whitespace_analyzer") String reference;

        @Field(type = FieldType.Boolean, index = false) private boolean repealing= false;
        @Field(type = FieldType.Date, index = false) private Date repealingDate;
        @Field(type = FieldType.Date, index = false) private Date repealedDate;

        @Field(type = FieldType.Date, index = false) private Date creationDate;
        @Field(type = FieldType.Date, index = false) private Date lastUpdateDate;

    }

Обновление

Я попытался изменить код снова, и я получаю исключение.

Изменение:

@Field(type = FieldType.Date, index = false, format= org.springframework.data.elasticsearch.annotations.DateFormat.ordinal_date_time)
    private Date repealingDate;

Исключение:

Caused by: java.lang.IllegalArgumentException: Invalid format: "1558519447840" is malformed at "7840"
    at org.joda.time.format.DateTimeParserBucket.doParseMillis(DateTimeParserBucket.java:187)

Обновление

Получается, что проблема возникла при выполнении одного конкретного запроса.И запрос был следующий:

public interface DirectiveEntryRepository extends ElasticsearchRepository<DirectiveEntry, String> {

public List<DirectiveEntry> findAllByRepealingTrueAndRepealingDateBetween(Date todayMin, Date todayMax);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...