可搜索插件似乎默认只有 10 个结果。如何更改它以返回所有结果?
@比尔我正在寻找这样的东西:
DomainClass.search("This is the query", [max:every_last_one_of_em])
我可以将限制设置为 40 并且可能没问题,但是此搜索的目的是为人类提供一个类似事物的列表以消除歧义,因此如果缺少某些事物,愚蠢的人类可能会使用“假设”来得到错误的答案。
可搜索插件似乎默认只有 10 个结果。如何更改它以返回所有结果?
@比尔我正在寻找这样的东西:
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"
因此,您似乎需要将选项 Map 传递给您的搜索调用,例如:
DomainClass.search( "This is the query", [max:1000] )
请注意,具有“无限”搜索结果是一个 Bad Idea(TM)。找出您想要处理的最大值并将其用作您的限制。
如果必须的话,我建议设置一个“大”的限制。如果您返回了那么多,则进一步查询以找出有多少(也有一个选项),并向用户显示一条消息“这是一个不完整的集合,请进一步限制您的视图”或一些这样的。
如果你绝对必须展示它们。然后使用该计数查询(这是我上面列出的页面中的一个选项),然后使用该计数作为最大值重新发送搜索。
Mikey 要让搜索返回所有结果,只需从 defaultMethodOptions 中删除 max 字段。
您可以在 Configuration -> Searchable.groovy 中找到此声明
defaultMethodOptions = [
search: [reload: false, escape: true, offset: 0, max: 10, defaultOperator: "and"],
suggestQuery: [userFriendly: true]
]