Grails Searchable Plugin для нескольких классов домена и нескольких полей поиска с помощью одной кнопки отправки - PullRequest
1 голос
/ 28 апреля 2011

У меня есть несколько доменных объектов, и у меня есть отношения один ко многим, многие ко многим, и данные поиска поступают из нескольких таблиц, и они всегда одинаковы.Я внедрил плагин 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 Ответ

1 голос
/ 29 апреля 2011

Вы можете передать все термины в одном запросе String, разделяя каждый токен / слово пробелом, например, если у вас есть два класса Domain, один с именем Person, а другой с именем Job, и вы ищете «John» и «Engineer» ваш строковый запрос должен быть "John Engineer", и вы должны получить оба объекта домена.

Это то, что вы ищете?

...