Telegram 中文搜索现状
首先为大家推荐一个telegram上一个最为好用的一个电报搜索引擎机器人,为Telegram中文用户打造方便好用的中文群组搜索
不管是资源,应用,技术人才等各类资源,在小熊搜索你都能找到!
小熊搜索机器人 https://t.me/xxbobot @xxbobot
Telegram 目前的搜索逻辑是根据「单词」来进行的,请注意这里的「单词」不一定是常见的单词,前后含有空格和标点符号则自成「单词」。譬如:Newlearner 如果写成“[空格] New lear ner [空格]”,那么在搜索中,你可以找到 New、lear、ner 这三个「单词」 。
这个搜索逻辑不可避免地带来一些问题,由于中文字与字之间是连贯没有空格的,如果你想要搜索某个历史关键词来找到之前的消息,可以说是很困难的。让我再次举例比较一下:随着越来越多新朋友的加入,日聊天数量越来越多,有必要减少一些 无关 话题 以保证群聊的高 话题 相关性。相关性不高的 话题 建议大家去对应群聊讨论
可以看到第二段的“话题”一词前后都有空格,我如果想要搜索到这段话(群置顶),只需要搜“无关 话题”即可。而第一段话则搜索不出任何结果。九歌有一句鸽人鸽语叫做:“反正只要足够香,你的眼神就可以不要。”而我每次想要 forword,需要搜索“你的眼神就可以不要”才可以找到这句话。
那么中文搜索逻辑如此,含大量空格的英文搜素体验会好吗,或许如此。但 Telegram 的搜索始终做不到类似浏览器关键词那样的「拆词」,搜索“New”是找不到“Newlearner”的。和中文一样,很多小语种也被这套搜索的逻辑深深地困扰。
从 Telegram 搜索逻辑入手
所以 Telegram 中文搜索难用已成事实,我将从 Telegram 搜索逻辑入手,和大家分享一下我前期做过什么努力。
- 为频道消息打 Tag
- 频道群组聊天时,将关键词前后空格
- 含有英文的句子中,将英文前后空格
通过以上步骤,就将「我记得某消息有个关键词叫…」的问题转化为「某消息我当时打了什么 Tag、其中是否含有关键词(英文)」。
这里附上一张我们不对外公开的、主编内部材料:自留地 Tag 列表(不完整)
在实际操作的过程中,我们觉得自己需要这么一张 Tag 表,便于对消息进行一个大致的分类和便于搜索。但随着时间的推移,消息数量的累计,Tag 起到的只剩下一个分类的作用,且分类后消息数量依然庞大。不得不采用 Tag + 英文关键词这样的方式使这套机制正常运作。
因此弊端非常明显:
- Tag 太多让读者无法自动联想和对号入座,有时候频道主编也不能。而过于宽泛的 Tag 带来的依然是海量的信息量
- 空格是个好文明,但不是所有的群友和频道主都能在聊天和编辑频道内容中做到
基于此我们认为,脱离 Telegram 的搜索体系,采用全局爬虫才是这个问题的最优解,目的是实实在在地让大家通过「关键词」去探索频道内容或寻找之前消息。
手动整理的尝试
既然决定脱离 Telegram 这个搜索框架,我首先想到了自己的博客。博客是一个公开的内容展示平台,且可以配合浏览器进行无死角的关键词搜索。我把具有实用性的技巧、文章、源码、软件工具等收录到这个导航页,形式是标题+链接。关注自留地的老读者都知道,我们之前每天推送信息的数量较多,其中夹杂着大量的时效性、羊毛新闻等。这个导航页主要目的有二:提供一个简单的分类、便于读者们搜索。
网站上线以来,阅读量近 5K。说实话并不算很多,我认为一方面不是每个读者都有搜索的需求,另一方面打开网页搜索体验确实没有 Telegram 内直接搜索来得直接。
基于 Web 的搜索引擎
在今年1月份,为了进一步优化大家的搜索体验, gaga.ee飞机资源网 https://gaga.ee/ 站长达成合作,将自留地展示于首页便于大家勾选并进行搜索。这种网页爬虫+搜索引擎的方案我比较喜欢,使用起来也确实很方便。
基于 Pyhton 的索引 Bot
上面的两套方案都跳出了 Telegram,转战浏览器,有些读者可能认为这样的体验不太好。因此近日我决心搭建一个关键词搜索 TG Bot,这样在兼顾体验的同时能够快速找出自己想要的消息。
- 小熊搜索机器人 https://t.me/xxbobot 不管是群组,还是针对频道都非常好用
- 小熊搜索机器人 https://t.me/xxbobot:Telegram 中文频道搜索大全机器人
由于无需细说的自留地和 IT 社群附属关系,我们打算为频道做一个关键词搜索机器人。相比第一个项目提供搜素结果展示/选择界面,第三个项目则直接将所有相关消息暴力 forword,因此体验很差。经过一番比较,我们决定使用小熊搜索机器人 https://t.me/xxbobot 作为机器人搭建方案。
部署
部署过程中得到了开发者 EEYHN 的无私帮助,在这里先表示感谢。大致部署过程如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#申请机器人 && clone 到本地 git clone https://github.com/EYHN/telegram-search.git
#安装依赖 pip install -r requirements.txt
#修改 main.py && 创建 session 文件夹 mkdir session
#生成数据库文件 python main.py
#针对小内存机器,建立 Swap(1G),并 sysctl -w vm.max_map_count=262144
#修改 main.py 中 Docker 环境参数 ES_JAVA_OPTS=-Xms512m -Xmx512m
#安装 docker 相关环境并运行 docker-compose up -d |
运行之后机器人会实时抓取频道消息,并使用 elasticsearch 建立搜索引擎,整个项目对内存大小有一定的要求。如果你想要修改结果展示的字数,可以在 main.py 中找到相关代码,默认值为 15 个字符。
使用
机器人使用的是 查询语法,可以精准到关键字词、日期。很多朋友直接输入关键词,对结果产生了很多疑问和不满,这里也来统一解答一下。先举个例子,例如我需要查询含有“动森”(动物森友会)的频道消息:
- 直接输入“动森”查询,会发现结果很多。这是由于未遵循查询语法,结果将含有“动”和“森”的所有消息全部列出。
- 当根据语法要求,输入“+动森”,会发现结果依然很多。这是因为词库并不认为「动森」是一个名词,而将含有“动”和“森”的所有消息全部列出。
- 因此正确的做法是,输入“+动 +森”,这表示搜索所有既含有“动”又含有“森”的消息。
总结与其他思路
照例来一张表格做一个横向对比:
基于 Telegram 框架 | 支持分类 | 按日期搜索 | 准确搜索关键词 | 备注 | |
---|---|---|---|---|---|
Telegram 自带搜索 | ✓ | ✗ | ✓ | ✗ | 对中文搜索不友好 |
Tag 与空格 | ✓ | ✗ | ✓ | ✗ | 操作难度大 |
自留地导航(博客) | ✗ | ✓ | ✗ | ✓ | 人力付出多 |
Web 搜索引擎 | ✗ | ✗ | ✗ | ✓ | 精确但需要浏览器和站主收录 |
Telegram 索引 Bot | ✓ | ✗ | ✓ | ✓ | 精确、基于 TG 但需要自学搜索语法和服务器开销 |
通过以上表格,相信大家对本文介绍的几种方案有了一个更直观的认知。在 Telegram 没有打算添加非英语语种的分词搜素措施前,我们应该不断寻找方法,改善群友和读者的搜索体验。最后附上我想到的其他思路:
- 对于个人:Windows 端支持导出频道全部内容,将其放置于浏览器,并加以搜索即可
- 对于群主/频道主:可以做一个关键词回复机器人,触发某关键词回复相关内容或者链接。但操作难度大、关键词并不明确且无法满足所有人的需求,只能做一些常用的,也称不上「搜索」或者「索引」
最后啰嗦一句,以上方案并不一定适合每位频道主,在信息累积到一定量之前简单的方法见效还是不错的。譬如我作为一个频道主,更新频率不高,每次更新完之后在 Notion 等处记录下 Tag、关键词和标题链接等重要信息,也可以做到自我索引。索引,既方便了自己,也方便了频道读者,因此非做不可。
telegram中文频道搜索群组推荐:
https://t.me/zwzx1 中文搜索频道/群组导航/小熊搜索
https://t.me/hao1234bot_so 中文频道群组搜索/TG小熊搜索导航
https://t.me/zwss02 TG中文群组频道搜索/中文小熊搜索
https://t.me/zwzxb 中文搜索群组频道<小熊搜索>
https://t.me/zwzxd 中文频道群组搜索+小熊搜索电报搜索
https://t.me/zwzxe 中文搜索频道/小熊搜索/搜索神器
https://t.me/zwzxf 中文搜群神器小熊搜索中文频道搜索
https://t.me/zwzxk 中文频道搜索中文群组小熊搜索
https://t.me/zwzxg Telegram中文搜索中文频道小熊搜索
https://t.me/zwzxm 中文官方搜索小熊搜索中文导航
https://t.me/zwzxv 中文电报搜索/超级搜索/小熊搜索
https://t.me/haoso1 小熊搜索中文搜索中文频道
https://t.me/haoso2 中文导航小熊搜索超级搜索
https://t.me/haoso3 电报搜索小熊搜索搜索大全
https://t.me/haoso4 Telegram中文频道中文导航小熊搜索
https://t.me/haoso5 中文搜索中文频道小熊搜索
https://t.me/haoso6 超级中文频道中文导航小熊搜索
https://t.me/haoso7 Telegram中文搜索中文频道小熊搜索
https://t.me/haoso08 中文频道搜索⋆中文群组⋆小熊搜索
https://t.me/haoso9 电报中文频道•中文搜索•小熊搜索
https://t.me/haoso10 中文搜索导航°中文频道°群组°小熊搜索
https://t.me/haoso11 中文频道/中文群组/导航/小熊搜索
https://t.me/haoso12 Telegram中文频道/中文群组/小熊搜索
https://t.me/haoso13 Telegram中文频道中文导航中文小熊搜索
https://t.me/haoso14 中文频道/导航/群组/小熊搜索
https://t.me/haoso15 中文频道中文导航群组小熊搜索
https://t.me/haoso16 中文频道导航/机器人分享/小熊搜索
https://t.me/haoso17 超级中文频道搜索小熊搜索
https://t.me/haoso18 中文搜索频道|TG导航|群组|小熊搜索
https://t.me/haoso19 中文Telegram频道|群组搜索|小熊搜索
https://t.me/haoso20 中文搜索频道中文TG导航小熊搜索
https://t.me/haoso21 中文频道搜索导航/搜索大全/小熊搜索
https://t.me/GT388 中文搜索频道群组/中文导航/小熊搜索
https://t.me/haoso1234CN 中文搜索频道/超级搜索/小熊搜索
https://t.me/haoso22 中文频道搜索导航/搜索大全/小熊搜索
https://t.me/haoso24 中文搜索频道群组导航/小熊搜索
评论()