2009-10-01 46 views
2

对于我的Grails应用程序,我使用Searchable Plugin来获得一个不错的“google-like”搜索。如何防止使用可搜索插件进行应用范围搜索?

我跟着指示并补充说:

class Address { 
    static searchable =true 

    Integer id     
    AddressGroups addressType 
    String briefDescription  
    String company 
} 

它确实工作得很好。 这里的问题是,我的应用程序中的搜索栏正在搜索所有类。

我知道这是一个简单的问题。但我没有发现这个问题的文档。我只想在时间搜索一个域类。不是所有的课程。

更多信息: 此外,我得到一个用户类和AddressGroups类。 正如你所看到的,地址组提供地址的地址类型。

+0

你能提供更多的信息吗?还有哪些类?我相信,默认情况下,插件将包含您创建的关联中包含的域对象。 – 2009-10-02 22:20:25

+0

添加了附加信息...嗯声音interssting。我怎样才能防止这种行为? – bastianneu 2009-10-04 10:59:09

回答

3

仅搜索一种类型的结果,你可以添加额外的搜索词“别名:DomainClassName”(这必须相与正常查询) 所以它成为

(搜索关键词)AND(别名: DomainClassName)

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

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

+1000哇...谢谢你的回答。很棒! – bastianneu 2009-10-06 08:31:50