Как предотвратить поиск по всему приложению с помощью плагина для поиска? - PullRequest
2 голосов
/ 01 октября 2009

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

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

class Address {
    static searchable =true

    Integer id                  
    AddressGroups addressType   
    String briefDescription     
    String company 
}  

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

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

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

1 Ответ

3 голосов
/ 05 октября 2009

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

(searchterm) И (псевдоним: DomainClassName)

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

class Person {
    AdressGroups addressType
    static searchable = {
        root true
        addressType component: [prefix:'person_']
    }
}
class AdressGroups {
    static searchable = {
        root false
    }
}
...