При поиске пользователей по значениям настраиваемого поля «Искомые пользователи» возвращается максимум 20 результатов, хотя, как я знаю из запросов в консоли Rails, их около 200.
Я подумал, что это может быть связано с «скрытой» настройкой сайта DISCOURSE_RATE_LIMIT_SEARCH_USER ([‘hidden’ site setting]), которую я изменил на 50. Хотя эта переменная окружения была распознана и появилась в итоговом блоке вывода команды ./launcher rebuild app, изменений не произошло. Я предполагаю, что эта настройка больше относится к ограничению частоты запросов, чем к количеству возвращаемых результатов поиска (хотя, просматривая Meta и исходный код Discourse, я не нашел никакой документации по этой настройке).
Является ли этот лимит в 20 внутренних ограничением Discourse? Есть ли способ его изменить?
Я могу воспроизвести это с помощью имени пользователя. Например, https://meta.discourse.org/u?name=M возвращает только 20 пользователей. Но я ожидал, что в Meta будет больше пользователей, начинающихся на «M».
Можно ли что-то сделать с этим ограничением в 20 пользователей при поиске? Команда форума, которая подняла этот вопрос, хочет использовать поиск для нахождения других людей с похожими исследовательскими интересами. В настоящее время это, казалось бы, произвольное ограничение делает поиск мало полезным для этой цели.
Это ограничение в 20 должно быть где-то настройкой, верно?
Есть ли какие-либо обновления по этой ошибке от команды Discourse? Было бы здорово узнать, будет ли она исправлена, так как она была воспроизведена здесь на Meta.
Это скорее запрос на новую функцию, чем баг. Вы хотите, чтобы мы реализовали пагинацию здесь.
Лимит запросов не связан с количеством результатов; он предназначен для предотвращения спама в поисковый эндпоинт.
Таким образом, если вы ищете термин и 200 пользователей ему соответствуют, будет показан только первый 20, и нет способа увидеть остальных. Это в лучшем случае неполноценная функция. Это просто не соответствует тому, как работают другие функции в Discourse.
Кроме того, поскольку не задокументировано, что существует жёсткое ограничение в 20 без явной причины, это, безусловно, выглядит скорее как баг или упущение, чем что-либо ещё. Я не могу представить, чтобы кто-то реализовывал функцию поиска и сознательно решал включить произвольное и полностью фиксированное ограничение на количество получаемых результатов.
Да, я понимал, что ограничение частоты запросов отличается от количества результатов, но это было единственное Setting, которое я мог найти где-либо, что, казалось, могло иметь какое-либо отношение к этому.
Однако это не так уж сложно представить. Реализация пагинации как на бэкенде, так и на фронтенде требует значительных усилий. Если предоставление такой функции никогда не запрашивалось, то приоритет отдаётся другим задачам. Отдельно взятые вещи могут быть простыми, но когда у вас тысячи дел, приходится делать выбор.
Мы планируем улучшить как общий поиск, так и поиск по каталогу, чтобы возвращать все результаты вместо ограничения первыми 20 результатами. Однако на данный момент я не знаю, когда мы завершим эту работу, поэтому оставлю эту тему открытой, чтобы понять, является ли это более распространённой проблемой, требующей более срочного приоритета.