Поиск, похоже, не работает для тегов с эмодзи

У меня есть теги, содержащие эмодзи, например new-york-city-🇺🇸. При использовании поиска и расширенного поиска темы не находятся.

Вот пример:
Запрос:
https://urbantech-forum.cornelltech.io/search?expanded=true&q=tags%3Anew-york-city-🇺🇸subway

А вот тема, которая должна быть найдена:
https://urbantech-forum.cornelltech.io/t/subway-accessibility-info-and-elevator-escalator-status-alerts/139

1 лайк

Не уверен, что это можно решить. Как ты думаешь, @neil?

Насколько мне известно, это происходит только потому, что регулярное выражение, которое у нас есть здесь:

не поддерживает эмодзи. Если бы оно соответствовало эмодзи, всё заработало бы после этого.

Возможно, стоит рассмотреть использование чего-то вроде: GitHub - ticky/ruby-emoji-regex: 💎 A set of Ruby regular expressions for matching Unicode Emoji symbols. · GitHub, чтобы получить качественное регулярное выражение для эмодзи.

Что ты думаешь, @sam?

1 лайк

О боже, это кажется одним большим монстром для поддержки важного частного случая. У нас уже есть регулярное выражение для валидации в классе Tag?

1 лайк

Не думаю, что у нас это есть, хотя могу ошибаться. @neil, наверное, знает лучше.

Насколько я знаю, у нас есть только функция clean_tag:

Она примерно так же скопирована на стороне клиента здесь:

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/select-kit/mixins/tags.js.es6#L80

Кроме того, это, вероятно, было бы полезно и в других местах, так как мы, например, генерируем это на стороне клиента: https://github.com/discourse/discourse/blob/master/app/assets/javascripts/pretty-text/emoji.js.es6#L24

2 лайка

Сомневаюсь, что у нас есть тесты для тегов с эмодзи. Может, стоит рассмотреть возможность поддержки этого в версии 2.5?

4 лайка

Я заметил, что при поиске только по тегу (без ключевого слова subway) возвращается только одна тема (и это не тема, опубликованная в первом сообщении):

https://urbantech-forum.cornelltech.io/search?expanded=true&q=tags%3Anew-york-city-🇺🇸

То же самое происходит и с другими ключевыми словами (но только для той темы, которая была возвращена ранее):

https://urbantech-forum.cornelltech.io/search?expanded=true&q=tags%3Anew-york-city-🇺🇸%20personal

Если не использовать теги, поиск работает корректно:

https://urbantech-forum.cornelltech.io/search?expanded=true&q=new-york-city-🇺🇸

Тема, возвращаемая ранее с тегом, является первой в результатах при поиске по ключевому слову, совпадающему с названием тега, но само сообщение — другое (хотя, возможно, это связано с метаданными или чем-то подобным в сообщении, что обнаруживается поиском, а не с самим тегом, но я не могу сказать точно).