2011-07-07 25 views
1

検索可能なプラグインのデフォルト値は10個にすぎないようです。すべての結果を返すには、これをどのように変更しますか?ビル @Grailsの検索可能なプラグイン:無制限の結果

私はこのような何かを探しています:私は40のようなの限度を入れて、おそらく罰金であってもよいが、この検索の目的は、人間にのリストを与えることである可能性があり

DomainClass.search("This is the query", [max:every_last_one_of_em]) 

曖昧さを解消するために同様のことをしているので、もし何かが欠けていると、愚かな人間は間違った答えを得るために "仮定"を使うだろう。ドキュメントから

+1

注、以下の私のサンプルでは、​​あなたの質問にあなたのコードの一部を示したい場合は、あなたのコードに合わせて少し楽かもしれません。 – billjamesdev

答えて

3

: "持つ、

DomainClass.search("This is the query", [max:1000]) 

注:http://grails.org/Searchable+Plugin+-+Methods+-+search

Options affecting the return value 
    max - The maximum number of results to return (default 10). Only used with result: "searchResult" 

だから、あなたのような、検索コールにオプションの地図に合格する必要がありますようです無制限の検索結果は悪い考え(TM)です。あなたが処理したい最大値を把握し、それをあなたの限界として使用してください。

私はあなたがしなければならない場合、 "大きな"制限があることをお勧めします。その数が戻ってきた場合は、そこにいくつの数があるかを調べるためにさらにクエリを実行してください(そのオプションもあります)、 "これは不完全なセットです。あなたのビューをさらに制限してください"またはそのようなもの。

絶対にそれらをすべて表示しなければならない場合は、次に、そのカウントクエリを使用します(上記のページのオプションです)。そして、そのカウントを最大値として使用して検索を再送します。

+1

なぜそれは悪い考えですか?また、私はその商標を所有しています。 – Mikey

+0

@Mikeyユーザに百万行を表示させるのは悪い習慣であるためです。ユーザーは実際にそれが起こることを望んでいますか?それが起こるのをどれくらい待たなければなりませんか? – billjamesdev

3

検索を行うと、すべての結果が返され、defaultMethodOptionsからmaxフィールドが削除されます。

あなたが設定でこの宣言を見つけることができます - > Searchable.groovy

defaultMethodOptions = [ 
    search: [reload: false, escape: true, offset: 0, max: 10, defaultOperator: "and"], 
    suggestQuery: [userFriendly: true] 
] 
関連する問題