Плагин для поиска Grails: безграничные результаты - PullRequest
1 голос
/ 08 июля 2011

Плагин с возможностью поиска, по умолчанию, показывает только 10 результатов. Как мне изменить это, чтобы вернуть все результаты?

@ Билл Я ищу что-то вроде этого:

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

Я мог бы установить ограничение в 40, и, вероятно, все будет в порядке, но цель этого поиска - дать человеку список похожих вещей для устранения неоднозначности, так что если некоторые из вещей будут пропущены, глупые люди, скорее всего, воспользуются " предположение "получить неправильные ответы.

Ответы [ 2 ]

3 голосов
/ 21 октября 2011

Майки, чтобы поиск возвращал все результаты, просто удалите поле max из defaultMethodOptions.

Вы можете найти это объявление в Конфигурации -> Searchable.groovy

defaultMethodOptions = [
    search: [reload: false, escape: true, offset: 0, max: 10, defaultOperator: "and"],
    suggestQuery: [userFriendly: true]
]
3 голосов
/ 08 июля 2011

Из документации по адресу: 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] )

Обратите внимание, что наличие «неограниченного» результата поиска - плохая идея.Выясните, какой максимум вы хотите обработать, и используйте его в качестве предела.

Я бы посоветовал иметь «большой» лимит, если нужно.Если вы получите столько ответов, сделайте еще один запрос, чтобы выяснить, сколько их есть (для этого тоже есть опция), и отобразите сообщение для пользователя, что «Это неполный набор, пожалуйста, еще больше ограничьте ваше мнение»или что-то подобное.

Если вы абсолютно ДОЛЖНЫ показать их все.Затем используйте этот запрос количества (это вариант на странице, которую я перечислил выше), затем повторно отправьте поиск, используя это число как максимальное.

...