Пустой набор результатов из запроса Compass Lucene с датами

Я использую Compass, чтобы делать запросы к данным внутри в структуре данных памяти. Он отлично работает для поиска значений String и enum, теперь я хочу искать даты.

Критерии поиска снабжены комментариями @SearchRestriction аннотаций. Пример о someDate:

    @SearchRestriction(path="fooBar.someDate" type = SearchRestrictionType.EQUAL)
    String someDate;

При поиске данных SomeDate аннотируется следующим образом:

    @SearchableProperty
    Date someDate;

SomeDate внутри доступных для поиска данных генерируется с new Date();) и строка запроса задается как 20120802,

Ситуация в отладчике: этот код генерирует такие запросы:

    someDate:20120802

Вот someDate это название поля, которое я ищу, и 20120802 дата в порядке ггггМмдд.

Проблема: Результаты не возвращаются при выполнении этого запроса. Я получаю пустой список. Дата в запросе такая же, как в объекте Date.

Что случилось?? Это неправильный способ поиска Dateс компасом? Я могу найти только диапазон запросов о дате, но поиск с точной датой или частью точной даты я не могу найти.

1 ответ

Решение

Вам необходимо указать формат для поиска недвижимости [Дата]

@SearchableProperty(format = "yyyyMMdd")

В некоторой степени это относится к Grails: Lucene, Compass Query Builder и диапазонам дат

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