Краткое руководство по поиску в Telegram
Для тестирования в основном использовались:
- веб-версия Telegram по адресу web.telegram.org через браузер Opera Mini для Android
- Telegram X для андроид
1. Поиск может выполняться как в веб-версии Telegram, так и в приложении
Известные отличия:
- Через приложение Telegram для андроида или iOs, применяя стандартную клавиатуру, невозможно набрать смайлики emoji в поле поиска. В то же самое время, через web-версию Telegram поиск по смайликам возможен.
2. В настоящее время результаты поиска относительно предсказуемы (соответствуют введённым в поиске символам). Поиск производится только по полям «Имя пользователя/Название группы» и «@-идентификатор».
3. Поиск производится следующим образом:
a) Поля, по которым производится поиск разбиваются на слова. Слова могут быть разделены пробелом, подчёркиванием, символами пунктуации. Также отдельными словами считается всё, что начинается с заглавной буквы. Например, ThisIsMyChat - 4 слова, а не одно. Каждый смайлик emoji считается отдельным словом.
b) Порядок слов, по которым производится поиск не важен, результаты будут одинаковыми
c) Основной язык поиска - английский. Вводя в поиске английские буквы можно найти в том числе группы с русскими именами (но наоборот не получается). Английские буквы совпадают с русскими через транслит. Однозначного соответствия между русскими и английскими буквами нет. Например, русская буква «к» соответствует английским «k» и «q»
d) Все слова, указанные в поиске пользователем, сравниваются со словами в данных группы. Совпадением считается, когда любое слово группы начинается со слова в поиске.
Пример: «my group q» матчится с «Мировая Кли group» (my - МИровая, q - Кли)
4. Маскимальное количество результатов поиска - 3. Но даже если выдается 1-2 результата, это не значит, что при уточнении поиска (добавлении ещё одной буквы к одному из поисковых слов) не появится дополнительных результатов.
Пример:
«my group h» выдаёт
- 1 результат (Go my group @httmony) в web-верии и в приложении на Android
- 2 результата (Go my group @httmony и My lovely Handbeg Group @Lovelyhandbag) в приложении на iPhone
«my group hi» выдаёт 1 результат (Hirogeneral (it’s my dog name) Coin Group @f2fbitcoinsg) на любых устройствах
«my group ha» выдаёт 2 результата (My lovely Handbeg Group @Lovelyhandbag и hardware group @myhardware) на любых устройствах
Предположительно, такое происходит потому, что некоторые группы (с малым количеством пользователей или содержащие нежелательный контент) имеют более низкий приоритет в поиске. Наличие/отсутствие строчки в результате поиска может зависеть от устройства/приложения, которое используется для работы с Telegram неочевидным образом. Однако результаты полностью не скрываются и оказываются доступными при добавлении букв в поисковый запрос.
5. Минимальное количество символов в строке поиска для поиска по группам/контактам, отсутствующих в списке известных, - 5 букв или 3 смайлика emoji (иногда только 5 смайликов срабатывают).
6. Поиск также ведётся по сообщениям в разговорах/группах, в которых состоит пользователь. При полнотекстовом поиске учитываются словоформы, определяется часть речи, в том числе для несуществующих в природе слов.
Пример:
«яча» находит фразу «Но это не о ячем не говорит это мог быть...»
«шорек» находит «шорьки»
«воркаться» находит «воркался»
«воркало» _не_ находит «воркался», но находит «воркает»
«нов» находит «нове»
Полнотекстовый поиск может осуществляться даже через web-версию телеграма, причём результаты включают в себя старые сообщения двухлетней давности (2016 года).
Таким образом, информация о всех сообщениях в (по крайней мере, публичных) чатах доступна для ПО на серверах Telegram в незашифрованном виде, слова в сообщениях индексируются и сортируются по словоформам, причём данный индекс, по-видимому, не имеет срока давности.