Grails для поиска плагин
В моем приложении Grails я использую плагин Searchable для поиска / индексации. Я хочу написать запрос Compass/Lucene, который включает несколько классов домена. В этом запросе, когда я хочу сослаться на идентификатор класса, я не могу просто использовать "id", потому что все классы имеют свойство "id". В настоящее время я обхожу эту проблему, добавив следующее свойство в класс Foo
public Long getFooId() {
return id
}
static transients = ['fooId']
Затем, когда я хочу сослаться на идентификатор Foo в запросе, я использую 'fooId'. Могу ли я предоставить псевдоним для свойства в сопоставлении с возможностью поиска вместо добавления свойства к классу?
3 ответа
Я наконец обнаружил, что это способ сделать это:
static searchable = {
id: name 'fooId'
}
Вы можете дать более конкретное имя для вашего свойства id. Смотрите эту страницу, чтобы узнать, как это сделать.
Спасибо! Это сработало бы очень хорошо, то есть, если бы я мог преодолеть ошибки OOM, сервер приложений, кажется, выбрасывает каждый раз, когда устанавливается плагин Searchable. Это пузырится через:
org.compass.gps.CompassGpsException: не удалось проиндексировать, исключение при выполнении; вложенное исключение: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: пространство кучи Java
Кто-нибудь настраивал их Searchable.groovy в grails-app/conf для выполнения строгой конфигурации file:/// или mmap:// only без кучи и индексации, скажем, один или два раза в день? Поиск за гранью приятного - но стоимость использования зеркального отображения базы данных в Grails (с Oracle 10g) кажется слишком большой.
Действительно небольшое количество доменов для поиска (4) небольшая база данных, может быть, 1-2 ГБ для этого приложения.