Подтверждаю, что я правильно понял, задав два вопроса:
можно ли искать в каталоге пользователей по пользовательским колонкам? Например, могу ли я искать по ответам пользователей на поле профиля «Любимый цвет»?
делает ли это также поля «Обо мне» и «Веб-сайт» (стандартные поля профиля пользователя) поисковыми через каталог?
Насколько я могу судить, поиск работает только по имени пользователя. Возможно, @HAWK сможет это подтвердить (эта строка была добавлена после моего сообщения)
Я бы хотел добавить возможность фильтрации/поиска по пользовательским полям в каталоге пользователей.
Наше сообщество работает в гибридной связке WordPress/Discourse, и мы создали на стороне WordPress каталог участников на основе карты. Но то, что действительно нужно нашим участникам, — это каталог участников, основанный на интересах.
Реализовать это на стороне WordPress очень сложно. Однако я не думаю, что это потребует много усилий для внедрения на странице https://[ВашDiscourseСайт]/u.
Например, у нас есть пользовательские поля для текущих учебных целей, мест, где вы жили, и — самое популярное — интересов/страстей/навыков. Если бы я мог выполнить поиск по ключевому слову, например, по общему интересу «развитие сообщества» или даже по учебной цели «программирование на Python», это было бы невероятно полезно для моего сообщества.
@HAWK, я знаю, что вас подталкивали к этому в ответе от @weallwegot в сентябре 2022 года. Я готов подробно описать спецификацию для запроса на добавление новой функции, если это то, как вы хотите развить эту идею.
Кстати, я не единственный, кто ищет расширенные возможности поиска в каталоге пользователей.
Нет необходимости упоминать здесь членов команды — они читают форум, и если ответственные за функцию что-то упускают, другие передадут информацию, если посчитают это нужным
Я протестировал поиск по пользовательскому каталогу по пользовательскому полю, и действительно есть куда расти.
В частности, специальные символы могут приводить к тому, что поиск не возвращает результаты, когда должен; в макете не хватает места для отображения дополнительных столбцов и т. д.
Думаю, если нужно что-то менять, начинать стоит именно с этого, чтобы получить более чистую и надёжную функцию.
Я подхожу к этому исключительно с функциональной точки зрения. Например, могу ли я выполнить поиск по ключевому слову в пользовательском поле интересов для запроса «создание сообщества» или даже в поле учебных целей для запроса «написание кода на Python»?
Ваши глаза, вероятно, острее моих в вопросах UX.
Я бы начал с функциональности, а затем занялся UX. Но это только мое мнение. Зная разработчиков Discourse, они могут делать оба эти дела одновременно.
Я готов продолжить обсуждение и даже составить спецификации функций, если это поможет ускорить будущую разработку возможности поиска по пользовательским полям в каталоге пользователей.
Не совсем понятно, где именно вы представляли себе поиск — на обычной странице поиска или отдельно на странице каталога пользователей.
Если речь о каталоге пользователей, я бы хотел увидеть что-то вроде этого:
В идеале эта функция должна быть частью ядра Discourse, но если интерес проявит больше людей, возможно, мы сможем создать плагин или тему для её реализации.
Джим, я тоже видел твою тему на форуме, когда искал способ сделать то, что хотим мы оба. С моей точки зрения (я не программист), наличие этой функциональности в ядре Discourse выглядит наиболее логичным решением, так как это полезный инструмент для всех пользователей Discourse.
Если же реализовать это через плагин или компонент темы, то подавляющее большинство пользователей Discourse даже не узнает о такой возможности.
Да, согласен, я бы предпочёл, чтобы это было в ядре Discourse. Я думаю, что каталог пользователей может стать одной из самых значимых функций Discourse, в зависимости от того, как его используют. Представляю, как его можно использовать для некоммерческой ассоциации: общение здесь, каталог членов, а также подписка, если люди этого хотят.
Возможно, сначала это можно реализовать как плагин или тему, а затем интегрировать в ядро.
Работает ли это сейчас с базовой версией поиска по полям пользователей? Я просмотрел коммит для этого релиза, и кажется, что должно работать. Сейчас у меня нет под рукой экземпляра для тестирования, но мне интересно: что именно, по вашему мнению, отсутствует?
Я спрашиваю, потому что в 2020 году я создал плагин для этого случая использования, но так и не дошёл до его публикации с открытым исходным кодом. Мне очень интересно исследовать варианты использования для поиска контента в сообществах (особенно в нескольких платформах — так что, если это ваш случай использования, дайте знать, с радостью обсудим подробнее!).
В любом случае, вот этот плагин: я на 80% уверен, что он избыточен по сравнению с тем, как в итоге была реализована базовая версия, но на случай, если есть улучшения или совместная разработка — решил поделиться.
Нет, то, что я описываю, пока не работает в версии Discourse 3.1.0.beta4.
Круто!
На самом деле мы используем гибридную систему WordPress-Discourse для нашего сообщества. Было бы потрясающе иметь возможность искать по обоим платформам с помощью одного инструмента, но меня устроит и просто поиск по пользовательским полям в Discourse.
Вы упомянули, что создали его в 2020 году, так что я бы не ожидал, что вы обновляли его с тех пор.
Думаю, плагину потребуется ещё несколько обновлений, чтобы он стал совместим с текущей базовой версией Discourse. И поскольку, насколько я знаю, разработчики Discourse не планируют добавлять поиск по пользовательским полям в ядро, я просто жду, когда кто-то вроде вас скажет: «Мой плагин работает!»… а затем я его протестирую.
Вам нужно будет дождаться выполнения фоновой задачи Jobs::ReindexSearch[1], чтобы включить их, но вы можете ускорить этот процесс, запустив задачу вручную со страницы /sidekiq/scheduler, если у вас есть к ней доступ.
Это знание стало для меня огромным пробелом! Раньше я просто делал определённые пользовательские поля доступными для поиска, добавлял колонку для их отображения на странице /u и сразу же начинал поиск. Но результатов не было, потому что фоновая задача Jobs::ReindexSearch ещё не выполнилась.
Теперь, когда я знаю этот ключевой момент, я смог поэкспериментировать с тем, как использовать поиск по пользовательским полям. К сожалению, в текущей реализации слишком много проблем с UX, которые не позволяют мне разрешить участникам форума использовать поиск по пользовательским полям.
Я записал это видео, чтобы показать разработчикам Discourse, разработчикам плагинов или любому другому заинтересованному лицу, что именно я имею в виду.
Если вы не можете или не хотите смотреть видео, вот мои письменные заметки о проблемах с UX.
Опция по умолчанию для отображения, вероятно, что-то другое, кроме «Всё время» (например, «Неделя» или «Месяц»). Поэтому пользователи могут подумать, что результаты поиска ограничены людьми, которые были активны за последние X недель/месяцев/кварталов/лет.
В поле поиска есть текст «фильтр по имени пользователя». Ничего в этом не говорит: «Используйте меня для поиска по ключевому слову».
В выпадающем списке указано «все группы», и люди могут справедливо подумать, что основное назначение поиска связано с группами, а не со всем форумом.
Нельзя искать по отдельному пользовательскому полю. Вы ищете сразу по всем полям, и это может вернуть слишком много результатов в зависимости от количества пользователей и/или ключевых слов.
При вводе в поле поиска результаты появляются в реальном времени по мере набора текста. Однако курсор остаётся на месте очень недолго перед тем, как загрузятся новые результаты и курсор сместится из поля ввода. Некоторые люди печатают медленно или делают паузы, поэтому это не очень удобно.
Чтобы увидеть пользовательские поля, нужно прокручивать вправо. Это нереалистично в мобильном виде, где большинство пользователей получают доступ к форуму.