Плагин для поиска Grails: безграничные результаты
Поисковый плагин, кажется, по умолчанию только 10 результатов. Как я могу изменить это, чтобы вернуть все результаты?
@ Билл, я ищу что-то вроде этого:
DomainClass.search("This is the query", [max:every_last_one_of_em])
Я мог бы установить ограничение в 40, и, вероятно, все будет в порядке, но цель этого поиска состоит в том, чтобы дать человеку список схожих вещей для устранения неоднозначности, поэтому, если некоторые вещи отсутствуют, глупые люди, вероятно, будут использовать "предположение" для получить неправильные ответы.
2 ответа
Из документации по адресу: 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] )
Обратите внимание, что наличие "неограниченного" результата поиска - плохая идея. Выясните, какой максимум вы хотите обработать, и используйте его в качестве предела.
Я бы предложил иметь "большой" лимит, если нужно. Если вы получите столько ответов, сделайте еще один запрос, чтобы выяснить, сколько их есть (для этого тоже есть опция), и отобразите сообщение для пользователя, что "Это неполный набор, пожалуйста, еще больше ограничьте ваше мнение" или что-то подобное.
Если вы абсолютно ДОЛЖНЫ показать их все. Затем используйте этот запрос количества (это вариант на странице, которую я перечислил выше), затем повторно отправьте поиск, используя это число как максимальное.
Майки, чтобы поиск возвращал все результаты, просто удалите поле max из defaultMethodOptions.
Вы можете найти это объявление в Конфигурации -> Searchable.groovy
defaultMethodOptions = [
search: [reload: false, escape: true, offset: 0, max: 10, defaultOperator: "and"],
suggestQuery: [userFriendly: true]
]