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 ГБ для этого приложения.

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