1

複数のドメイン オブジェクトがあり、1 対多、多対多の関係があり、検索データはいくつかのテーブルから取得され、常に同じです。アプリに 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>. 

しかし、searchTerm を取得するための複数のテキスト フィールド、チェック ボックス、および g:select ボックスがあります。フィールドのいずれかまたは複数の検索選択に基づいて、検索結果を取得する必要があります。間にすべての検索フィールドを含め、すべてのパラメーターに対して単一の送信ボタンを設定する方法。これが私の検索アクションコードです:

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]
    }
}

迅速な提案をいただければ幸いです。

4

1 に答える 1

1

各トークン/単語をスペースで区切る1つの文字列クエリですべての用語を渡すことができます。たとえば、1つはPersonという名前のドメインクラスともう1つはJobという名前のドメインクラスがあり、「John」と「Engineer」を検索すると、文字列クエリは「JohnEngineer」である必要があり、両方のドメインオブジェクトを取得する必要があります。

そういうものをお探しですか?

于 2011-04-28T20:30:37.343 に答える