2009-10-01 11 views
2

Pour mon application Grails, j'utilise le plugin Searchable pour effectuer une recherche "google-like".Comment empêcher la recherche à l'échelle de l'application avec le plugin interrogeable?

J'ai suivi les instructions et a ajouté:

class Address { 
    static searchable =true 

    Integer id     
    AddressGroups addressType 
    String briefDescription  
    String company 
} 

Il fonctionne vraiment bien. Le problème ici est que la barre de recherche dans mon application recherche dans toutes les classes.

Je sais que c'est un problème simple. Mais je n'ai trouvé aucune documentation pour ce problème. Je veux juste rechercher une classe de domaine à la fois. Pas toutes les classes.

Plus d'informations: De plus j'ai obtenu une classe User et une classe AddressGroups. Comme vous pouvez le voir, Addressgroups fournit addressType pour Address.

+0

pouvez-vous fournir plus d'informations? Quelles autres classes? Je crois que par défaut, le plugin inclura les objets de domaine inclus dans l'association que vous avez créée. –

+0

Ajout d'informations supplémentaires ... hmm semble interessant. Comment puis-je empêcher ce comportement? – bastianneu

Répondre

3

rechercher uniquement les résultats d'un type que vous pouvez ajouter une recherche supplémentaire terme « alias: DomainClassName » (ce qui doit être anded à la requête normale) il devient

(searchterm) ET (alias: Si vous voulez que la personne en résulte si le terme est trouvé dans les groupes d'adresses, vous pouvez définir des groupes d'adresses en tant que composant et faire des groupes de destinataires un objet non racine pour la boussole.

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

+1000 Wow ... merci pour cette réponse. Fonctionne très bien! – bastianneu