#grails #lucene #searchable #compass-lucene
#grails #lucene #доступен поиск #compass-lucene
Вопрос:
У меня есть плагин с возможностью поиска, работающий с моим проектом grails. У меня это индексирует 4 разные таблицы на работе. К сожалению, в каждой таблице есть поле даты, которое называется по-разному. Некоторые из них называются createdAt, некоторые — publishedOn и т.д…
В рамках моего поиска мне нужно получить элементы, которые находятся в пределах определенного диапазона дат, из этих полей. Есть ли способ сделать это? Я видел один конкретный экземпляр в документации к плагину, но он не учитывает разные имена полей, с которыми мне приходится иметь дело.
Ответ №1:
вы можете настроить классы своего домена так, чтобы переопределять или предоставлять дополнительные записи индекса Lucene для свойства под другими именами.
Итак, предположим, что у вас есть класс со свойством ‘publishedOn’, но вы хотите, чтобы это свойство было доступно для поиска как ‘publishedOn’, так и ‘createdAt’. Вы могли бы сделать что-то вроде следующего:
class ADomainClass {
Date publishedOn
static searchable = {
'publishedOn' format:'yyyyMMdd'
'publishedOn' name: 'createdAt', format 'yyyyMMdd'
}
}
Если вы хотите, чтобы он был доступен для поиска только как ‘createdAt’, тогда просто оставьте первую запись ‘для поиска’.