1

可搜索插件似乎默认只有 10 个结果。如何更改它以返回所有结果?

@比尔我正在寻找这样的东西:

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

我可以将限制设置为 40 并且可能没问题,但是此搜索的目的是为人类提供一个类似事物的列表以消除歧义,因此如果缺少某些事物,愚蠢的人类可能会使用“假设”来得到错误的答案。

4

2 回答 2

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"

因此,您似乎需要将选项 Map 传递给您的搜索调用,例如:

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

请注意,具有“无限”搜索结果是一个 Bad Idea(TM)。找出您想要处理的最大值并将其用作您的限制。

如果必须的话,我建议设置一个“大”的限制。如果您返回了那么多,则进一步查询以找出有多少(也有一个选项),并向用户显示一条消息“这是一个不完整的集合,请进一步限制您的视图”或一些这样的。

如果你绝对必须展示它们。然后使用该计数查询(这是我上面列出的页面中的一个选项),然后使用该计数作为最大值重新发送搜索。

于 2011-07-07T22:44:20.973 回答
3

Mikey 要让搜索返回所有结果,只需从 defaultMethodOptions 中删除 max 字段。

您可以在 Configuration -> Searchable.groovy 中找到此声明

defaultMethodOptions = [
    search: [reload: false, escape: true, offset: 0, max: 10, defaultOperator: "and"],
    suggestQuery: [userFriendly: true]
]
于 2011-10-21T16:28:38.780 回答