Grails: Lucene, Compass Query Builder и диапазоны дат

У меня есть плагин для поиска, работающий с моим проектом Grails. У меня есть индексация 4 разных таблиц на работе. К сожалению, каждая таблица имеет поле даты, которое называется по-разному. Некоторые из них называются createdAt, некоторые — publishOn и т. д.

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


person intargc    schedule 27.04.2011    source источник


Ответы (1)


вы можете настроить свои классы домена для переопределения или предоставления дополнительных записей индекса Lucene для свойства под другими именами.

Итак, предположим, что у вас есть класс со свойством 'publishedOn', но вы хотите, чтобы это свойство было доступно для поиска как 'publishedOn', так и 'createdAt'. Вы бы сделали что-то вроде следующего:

class ADomainClass {
    Date publishedOn

    static searchable = {
       'publishedOn' format:'yyyyMMdd'
       'publishedOn' name: 'createdAt', format 'yyyyMMdd'
    }
}

Если вы хотите, чтобы он был доступен для поиска только как «createdAt», просто оставьте первую «доступную для поиска» запись.

person Rich Freedman    schedule 05.05.2011