登录
  • 人们都希望被别人需要 却往往事与愿违
  • 假如程序代码和注释不一致, 那么很可能两者都是错的!@Norm Schryer

让Telegram支持中文搜索!

编程 Benny小土豆 9519次浏览 992字 5个评论
文章目录[显示]
这篇文章在 2022年06月11日21:15:22 更新了哦~

众所周知,Telegram是一款非常优秀的即时通信工具,可比那个不知名的绿色图标的软件好多了。Telegram不仅使用更安全,应用程序也很小,还支持多客户端登录,消息跨平台无限制同步。

让Telegram支持中文搜索!

尽管Telegram这么棒,但是对于中国用户来说,最致命的一个缺点就是搜索。这一点对不是用分词的CJK用户来说也是一样的。想要搜索点什么东西,那简直就是要了命了,必须要输入整个句子。

有啥办法可以解决这个问题吗?

一个最常见的方法是,使用Telegram Desktop,注意是Telegram Desktop,用C++写的那个,导出聊天记录为json,然后搜索。

可这样也太繁琐了吧!有没有什么更好的方案呢……

一个方法是魔改Telegram的客户端,反正也是开源的,能搜本地数据库就搜本地的吧,至于需要请求服务器搜索的,那大概率是没救了。可惜我既不会swift也不会c++,更何况我估计以我的小脑瓜我也看不懂他们的代码……

另一个方法就是自己保存一份!还记得Telegram支持多客户端登录吗,那我们如果拿来一个client用来把文字消息保存到数据库中,后续再从数据库中查询,那不就有了嘛!

嗯,这么做像极了某绿色软件:「看了会被开除,我们不保存聊天记录」

说干就干!

让Telegram支持中文搜索!

技术选型

需要用MTProto协议,那么最好就是用纯Python实现的pyrogram了,用TDLib什么的太麻烦了。

数据库就用ElasticSearch吧,全文检索更方便。  算了算了,ES惹不起,用MongoDB吧

一个client,登录账号,把收和发的消息保存到数据库中。

一个bot,用于从数据库中检索数据。

加上一些身份验证之类的。

使用截图

详细功能说明可以移步GitHub

让Telegram支持中文搜索!

让Telegram支持中文搜索!

从此以后CJK再无烦恼😂

总计代码也就400多行!

由于这种操作涉及到个人聊天记录,是非常敏感且重要的信息,因此不提供任何公开bot,需要自己部署一份。

看这ES跑得多欢快,就像脱缰的野马一样,配合上kibana这个劝退的工具简直天生一对😠

让Telegram支持中文搜索!

开源地址

https://github.com/tgbot-collection/SearchGram

放到了这里,😂还打算做 chat history import的功能,就是今天太累了……蹲一个PR吧。

具体部署方法在那边也有,写的应该比较详细了。这里就不复述了。

能用就行,从此再也不怕搜不到聊天记录了.jpg


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/telegram-cjk-search.html
喜欢 (28)
分享:-)
关于作者:
If you have any further questions, feel free to contact me in English or Chinese.
发表我的评论
取消评论

                     

去你妹的实名制!

  • 昵称 (必填)
  • 邮箱 (必填,不要邮件提醒可以随便写)
  • 网址 (选填)
(5)个小伙伴在吐槽
  1. 好像少了个searchgram。py的文件
    huhu2023-11-27 20:06 回复
  2. 狗杂种奴才有本事别删啊,推特骂的不是挺欢的,怎么这就不敢公开了 :mrgreen:
    狗杂种2022-05-19 23:58 回复
    • 既然你叫的这么欢,那我也只好支持你了!
      Benny小土豆2022-05-20 00:00 回复
  3. 一个小提醒:现代韩语(全谚文书写)是用空格分词的,所以受害者只有 C 和 J。
    oldherl2022-05-09 00:15 回复
    • 啊,中日用户也太惨了
      --本评论由Telegram Bot回复~❤️
      Benny小土豆2022-05-09 00:41 回复