如何使用可搜索插件防止应用范围内的搜索?

时间:2009-10-01 14:16:01

标签: grails grails-plugin

对于我的Grails应用程序,我使用Searchable插件进行了一个不错的“谷歌式”搜索。

我按照说明添加了:

class Address {
    static searchable =true

    Integer id                  
    AddressGroups addressType   
    String briefDescription     
    String company 
}  

它真的很好用。 这里的问题是我的应用程序中的搜索栏正在搜索所有类。

我知道这是一个简单的问题。但我没有找到该问题的文档。我只是想一次搜索一个域类。不是所有的课程。

更多信息: 此外,我有一个用户类和一个AddressGroups类。 如您所见,Addressgroups为Address提供了addressType。

1 个答案:

答案 0 :(得分:3)

只搜索一种类型的结果,你可以添加一个额外的搜索词“alias:DomainClassName”(这必须与普通查询相结合) 所以它变成了

(searchterm)AND(别名:DomainClassName)

如果您希望Person作为结果,如果在addressGroups中找到该术语,则可以将addressGroups定义为组件,并使地址组成为罗盘的非根对象。

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