可搜索插件似乎默認只有10個結果。我如何改變這個返回所有結果?Grails可搜索插件:無限結果
@ 比爾我正在尋找這樣的事情:
DomainClass.search("This is the query", [max:every_last_one_of_em])
我可以把限制的像40,可能被罰款,但這一搜索的目的是爲了給人類的列表類似的東西來消除歧義,所以如果有些東西缺失,愚蠢的人可能會用「假設」來得到錯誤的答案。
可搜索插件似乎默認只有10個結果。我如何改變這個返回所有結果?Grails可搜索插件:無限結果
@ 比爾我正在尋找這樣的事情:
DomainClass.search("This is the query", [max:every_last_one_of_em])
我可以把限制的像40,可能被罰款,但這一搜索的目的是爲了給人類的列表類似的東西來消除歧義,所以如果有些東西缺失,愚蠢的人可能會用「假設」來得到錯誤的答案。
從文檔: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)。找出想要處理的最大值,並將其用作限制。
我建議有一個「大」的限制,如果你必須的話。如果你找回那麼多,然後進一步查詢,找出有多少(有一個選項),並向用戶顯示一條消息:「這是一個不完整的集合,請進一步限制你的觀點」或者其他一些。
如果你絕對必須展示他們全部。然後使用該計數查詢(這是我上面列出的頁面中的一個選項),然後使用該計數作爲最大值重新發送搜索。
爲什麼這是一個壞主意?另外,我擁有該商標。 – Mikey
@Mikey因爲允許向用戶顯示一百萬行是不好的做法。用戶是否真的希望這種情況發生,他們需要等待多久才能發生? – billjamesdev
Mikey使搜索返回所有結果,只是從defaultMethodOptions中刪除最大字段。
您可以找到此聲明在配置 - > Searchable.groovy
defaultMethodOptions = [
search: [reload: false, escape: true, offset: 0, max: 10, defaultOperator: "and"],
suggestQuery: [userFriendly: true]
]
注意,下面我的樣本可能是一個比較容易融入你的代碼,如果你在你的問題出你的一些代碼。 – billjamesdev