Grails可搜索插件,用于多个域类和多个搜索字段,并带有一个提交按钮

时间:2011-04-28 18:20:27

标签: plugins grails searchable

我有多个域对象,并且具有一对多,多对多关系,搜索数据来自几个表,并且总是相同的。我在我的应用程序中实现了Searchable插件,并且当我有这样的单个搜索字段时能够检索结果:

<g:form url='[controller: "searchable", action: "searchContact"]' id="searchableForm" name="searchableForm" method="get">
    <g:textField name="query" value="${params.query}" size="40"/>
    <input type="submit" value="Search Contact" />
</g:form>. 

但我有多个文本字段,复选框和g:选择框以获取searchTerm。基于任何一个字段或多个搜索选择,我必须获得搜索结果。如何在两者之间包含所有搜索字段,并为所有参数提供单个提交按钮。这是我的搜索操作代码:

def searchContact = { 
    if (!params.query) {
        return [:]
    }
    try {
        String searchTerm = params.query
        println searchTerm
        return [searchResult: searchableService.search(searchTerm, params)]
    } catch (SearchEngineQueryParseException ex) {
        return [parseException: true]
    }
}

欢迎提出快速建议。

1 个答案:

答案 0 :(得分:1)

您可以在一个字符串查询中传递所有术语,用空格分隔每个标记/单词,例如,如果您有两个Domain类,一个名为Person,另一个名为Job,您搜索“John”和“Engineer” ,你的String查询应该是“John Engineer”,它应该为你提供两个域对象。

这是你要找的那种吗?