2011-07-07 67 views
1

可搜索插件似乎默認只有10個結果。我如何改變這個返回所有結果?Grails可搜索插件:無限結果

@ 比爾我正在尋找這樣的事情:

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

我可以把限制的像40,可能被罰款,但這一搜索的目的是爲了給人類的列表類似的東西來消除歧義,所以如果有些東西缺失,愚蠢的人可能會用「假設」來得到錯誤的答案。

+1

注意,下面我的樣本可能是一個比較容易融入你的代碼,如果你在你的問題出你的一些代碼。 – billjamesdev

回答

3

從文檔: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" 

因此,看來你需要在地圖選項傳遞到你的搜索調用,如:

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

注意,具有「無限「的搜索結果是一個壞主意(TM)。找出想要處理的最大值,並將其用作限制。

我建議有一個「大」的限制,如果你必須的話。如果你找回那麼多,然後進一步查詢,找出有多少(有一個選項),並向用戶顯示一條消息:「這是一個不完整的集合,請進一步限制你的觀點」或者其他一些。

如果你絕對必須展示他們全部。然後使用該計數查詢(這是我上面列出的頁面中的一個選項),然後使用該計數作爲最大值重新發送搜索。

+1

爲什麼這是一個壞主意?另外,我擁有該商標。 – Mikey

+0

@Mikey因爲允許向用戶顯示一百萬行是不好的做法。用戶是否真的希望這種情況發生,他們需要等待多久才能發生? – billjamesdev

3

Mikey使搜索返回所有結果,只是從defaultMethodOptions中刪除最大字段。

您可以找到此聲明在配置 - > Searchable.groovy

defaultMethodOptions = [ 
    search: [reload: false, escape: true, offset: 0, max: 10, defaultOperator: "and"], 
    suggestQuery: [userFriendly: true] 
]