Как предотвратить поиск по всему приложению с помощью Searchable Plugin?

Для моего приложения Grails я использую Searchable Plugin, чтобы иметь хороший поиск, похожий на Google.

Я последовал инструкциям и добавил:

class Address {
    static searchable =true

    Integer id                  
    AddressGroups addressType   
    String briefDescription     
    String company 
}  

Это действительно работает нормально. Проблема здесь в том, что панель поиска в моем приложении выполняет поиск по всем классам.

Я знаю, что это простая проблема. Но я не нашел документации по этому вопросу. Я просто хочу искать один класс домена за раз. Не все классы.

Дополнительная информация: Кроме того, я получил класс пользователя и класс AddressGroups. Как видите, группа адресов предоставляет addressType для адреса.


person bastianneu    schedule 01.10.2009    source источник
comment
Вы можете предоставить больше информации? Какие еще классы? Я считаю, что по умолчанию плагин будет включать объекты домена, включенные в созданную вами ассоциацию.   -  person Aaron Saunders    schedule 03.10.2009
comment
Добавлена ​​дополнительная информация... хм, звучит интересно. Как я могу предотвратить такое поведение?   -  person bastianneu    schedule 04.10.2009


Ответы (1)


чтобы искать только результаты одного типа, вы можете добавить дополнительный поисковый термин «alias:DomainClassName» (это должно быть добавлено к обычному запросу), чтобы он стал

(поисковый запрос) И (псевдоним:DomainClassName)

если вы хотите получить Person в результате, если термин найден в addressGroups, вы можете определить addressGroups как компонент и сделать группы адресов некорневым объектом для компаса.

class Person {
    AdressGroups addressType
    static searchable = {
        root true
        addressType component: [prefix:'person_']
    }
}
class AdressGroups {
    static searchable = {
        root false
    }
}
person squiddle    schedule 05.10.2009