Плагин для поиска 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]
]
Другие вопросы по тегам