Есть ли способ исключить посты конкретного пользователя из результатов поиска? В настоящее время, если очень активный пользователь имеет имя, начинающееся с популярного термина сообщества или содержащее его, например:
Термин поиска: ‘ABCD’
Имя пользователя: ‘ABCDAndUser…’
…поиск этого термина часто выводит список постов этого пользователя, до такой степени, что практически невозможно отличить его случайные посты от тематических, в которых этот пользователь просто участвует в обсуждении. В идеале большинство участников хотели бы видеть список тематических постов, а не посты, где упоминается только этот пользователь, хотя сам термин в них не используется.
Редактирование: На данный момент мне не известно никаких обходных путей, кроме изменения имени пользователя и/или блокировки этого пользователя другими участниками при проведении поиска. Ни один из этих вариантов не является идеальным.
Действительно, похоже, что здесь возможны некоторые улучшения — не кажется правильным, что имя может «захватывать» поиск таким образом, и вполне вероятно, что пользователи могут выбирать имена, связанные с темой конкретного форума.
Я не знаю, насколько сложно это реализовать «под капотом», но, возможно, стоит скрывать имена пользователей, если нет символа @.
Я не думаю, что это лучшее решение для этой проблемы. Например, на автомобильном форуме кто-то может выбрать имя пользователя, в котором заявляет о владении или любви к определённой модели автомобиля. Вы действительно хотите запретить такую возможность — или поддерживать список?
Кроме того, однажды мне пришлось задать вопрос в службу поддержки AT&T, и я не смог использовать имя «Мэтью». Хотите угадать, почему?
Возможно, я неправильно понял изложенные настройки. Придется ли резервировать каждое вхождение любого потенциально проблемного слова в будущих именах пользователей, а также ретроспективно удалять его из имен пользователей членов сообщества?
Я точно знаю, что у нас есть участники, использующие, например, имя ‘testuser’. То есть это решение сработает только в том случае, если мы будем использовать подстановочные знаки для массового блокирования имен пользователей, верно? Это, похоже, легко может стать чрезмерно обременительным для множества сокращений (в данном конкретном случае речь шла о тикере ETF в финансовом сообществе).
Также с практической точки зрения ограничение на имена пользователей плохо совместимо с SSO. Если SSO не обеспечивает соблюдение того же ограничения и пользователь по незнанию выбирает «запрещённое» имя, Discourse назначит ему случайное длинное имя, похожее на UUID.
Есть ли какая-то конкретная причина, по которой Discourse не использует знак минуса Google для исключения из поиска результатов, содержащих определённый термин (в данном случае — имя пользователя как термин для исключения)? Мне кажется, что если бы такая функция существовала, это было бы самым простым решением.
Извините, мне нужно, чтобы этот разговор был привязан к реальности.
Вы говорите, что хотели бы выполнить поиск по запросу:
msft -msft_user
Технически это возможно в нашем текущем индексе, но для реализации потребуется значительная работа. Особенно учитывая, что msft_user разбивается на два токена (msft / user), поэтому нам придется использовать синтаксис «идет после». Я вижу смысл в внедрении оператора -, но это непростое изменение.
Да, извините, если это получилось слишком затянутым. Это, конечно, не было моей целью.
Я подумал, что стоит спросить, так как один из наших участников поднял эту тему, и это кажется уместным изменением, учитывая, что ваша команда как раз недавно работала над улучшением поиска.
Никаких проблем, я считаю, что это вполне обоснованный запрос. Поддержка -что-то и -«какая-то более длинная фраза» могла бы оказаться весьма полезной во многих случаях.
Это не тривиальное изменение, но и не огромная работа; главное в этом изменении то, что оно немного кропотливое.
Я помечаю это, и в следующем раунде работы по поиску мы сможем вернуться к этому!