Telegram一款非常流行的即时通信软件,其软件客户端是自由及开放源代码软件,服务器端有专门的软件构成,用户在使用过程当中可以互交换加密与自回消息,使用起来非常的方便。电报频道部署按关键词
搜索的机器人之后,拥有了不一样的操作体验,为了能够让大家更加快速的寻找自己想要的东西,为大家盘点一下IT社群和自留地,做出了很大的努力。需要大家注意的是,市面上其实没有完全能够解决全平台
群组和频道中文搜索问题的好方案,以下内容请阐述自身观点,特别适合那些酷爱TG频道的群主,能够带来不一样的使用体验!
Telegram电报中文搜索现状
为什么这么关注中文搜索呢?
需要大家了解Telegram目前的搜索逻辑,主要根据“单词”进行,而这里所指的“单词”并不是市面上常见的单词组成,前后会包含空格和标点符号,从而形成电报上面特有的“单词”形式。
举一个简单的例子,如果我们输入一个“Windows”,将其写成“空格”形式的“空格”Win dows“空格”,在搜索结果当中,就可以轻松找到Win Dows两个不同的“单词”,确实有一些神奇的因素存在。
由于Telegram使用这种特殊的搜索逻辑,不可避免的会带来一些明显的问题,中文当中字与字之间是连贯没有空格的存在,在每个句子当中存在一定的符号进行间隔。这个时候想要搜索一个历史关键词,
从而在历史记录当中找到与之对应的消息,这样的难度会大大加重。再为大家做一个中文搜索方面的例子,这样会更加明显!
原句子:很多朋友们都非常喜欢Telegram电报这个软件,主要就是因为这个软件拥有强大的各种免费功能。
现句子:很多朋友都非常喜欢Telegram这个软件,主要就是因为这个“空格”软件“空格”拥有“空格”强大的“空格”各种免费功能。
可以清楚的看到,在第二段的“强大的”一词前面都有空格,所以当要搜索到这段话进行群顶置,我们只需要搜索“软件”、“拥有”、“强大的”等内容就可以,相反第一段话就很难说出相应的结果。
想要搜索一首古诗:床前明月光,疑是地上霜,每次想要forword的时候,还需要在搜索框当中输入全部内容,比如“床前明月光”或者“疑是地上霜”,这样才能够搜索到准确的答案。
在这里大家应该能够看到中文搜索过程当中的相关逻辑,毕竟中文输入过程当中很少自带空格,而英文句子当中都含有大量的空白,搜索体验是否会好很多呢?尽管英文句子本身就具有优势,
但是电报搜索始终没有做到类似于浏览器关键词那样的智能“拆词”功能。搜索“Win”之时根本得不到“Windows”的结果。不仅仅英文句子面临这样的困惑,中文语句更是困难重重,
其他小语种也被这种莫名其妙的搜索逻辑深深影响着。
改善Telegram搜索逻辑
官方给出的中文搜索非常难用,已成为不可改变的事实,这个时候可以从Telegram搜索逻辑方面入手,或许能够给大家带来不一样的体验!也可以采用以下几种不同的方法,效果相当明显。
- ·在频道和群组聊天之时,可以在关键词的前后安插空格。
- ·为频道消息打Tag。
- 还有一些英文的句子,将英文前后安插空格。
当我们这样进行操作之后,在搜索相关历史内容之时,就可以将在搜索的时候需要输入哪些关键词,改变成为发消息的时候我打了哪些关键词,或者某消息时我打了什么tag,其中包含了哪些中文和
英文关键词,这样搜索难度就会大大降低。
在实际的操作过程当中,很多人都将自己聊天当中的Tag专门进行分类,并绘制在一张表格当中,这样能够方便日后对消息进行大致分类,方便搜索内容。随着时间的不断推移,
消息当中所包含的Tag数量越来越多,这个时候Tag的效果就非常不明显,仅仅只剩下一个分类的作用,尽管是分类之后的消息,数量依然十分的庞大,需要更换不同的标记方式,
可以采用Tag+英文关键词,这个方法的效果立竿见影。
这样做的缺点
- ·Tag标记的数量非常庞大,用户无法自动联想和对号入座,还需要拥有一定的参考。当聊天记录数量非常多的时候,Tag依然会给大家带来海量的信息,使用起来依然非常麻烦。
- ·空格有些时候所起到的效果非常明显,但是在实际操作过程当中,并非所有的群组和频道主都能够一直在聊天和编辑频道当中安插空格。
在这样的环境之下,我们个人所做出的努力微不足道,而且效果也不明显,想要脱离Telegram搜索体系,还是需要官方更改电报的搜索方式,这样用户就可以通过搜索关键词的方式,搜索频道内容或者
寻找之前的消息,方便查看!
怎样脱离Telegram搜索体系
想要脱离Telegram搜索体系的用户很多,需要找到一个好的方法,这让我们想到了博客的相关体系。博客是一个公开的内容展示平台,能够像浏览器搜索关键词那样,无死角的对关键词进行搜索,
使用起来就很方便。可以尝试手动频道内容整理,或许会有不一样的效果。
某个用户大咖,曾经这样手动整理过,亲自将具有实用性的技巧、软件工具、源码等内容收入到导航页当中,采用标题加链接的形式。商用Telegram电报每天都会定时推送含量的信息,这其中就包含了
大量的羊毛性新闻,需要分门别类的进行整理。在做了这个导航页之后,就会拥有很多明显的优势,提供简单的分类,从而方便用户进行搜索,起到浏览器搜索关键词的相同作用。
很多电报网站自上线以来,阅读量并没有想象当中的那么多,每个用户都拥有一定的搜索需求,这一点无法得到保障,打开网页搜索体验也没有直接在Telegram内部直接搜索更加直白,
这些都是短期内无法更改的事实。
在Web搜索引擎上的尝试
很多Telegram上面的网站都在不断的进行更新优化,提高用户的搜索体验,比如自留地和sssoou.com达成深度合作,将自留地的内容展示在首页部位,方便大家勾选和进行相关搜索。
网页爬虫+搜索引擎的方案,所起到的真实效果非常明显,确实提供了便利的条件。
在Pyhton索引Bot的尝试
传统意义上会采用跳出Telegram的方式,将界面转到浏览器,就可以实现关键词搜索的服务。很多用户并不买账,认为这样的体验不好,可以采用一个较为复杂的方式,搭建一个关键词搜索TG Bot,
这样体验更好,还能够快速找到自己想要搜索的关键词信息内容。
在GitHub上面找到相应方案,具体内容如下:
- ·针对频道:telegram-search:可按日期搜索的中文分词引擎机器人
- 针对群组:telegram-search-bot:Telegram 中文搜索复读机器人
- 针对频道:telegram-find-in-channel-bot:Telegram 中文搜索
制作一个关键词搜索机器人,就比较智能,相比于提供搜索结果展示,选择相应的界面,这个方法能够直接将所有的相关消息forword,体验相对比较糟糕。经过大量数据尝试,不妨使用telegram-search
作为机器人搭建方案。
具体部署过程
具体部署过程相对来说比较繁琐,新手小白人物很难凭借自身力量完成,在某些开发者大咖的鼎力帮助之下,获得了具体的部署步骤,具体步骤内容如下:
#申请机器人 && 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个字符。
怎么使用
知己知彼,才能百战不殆,这套程序当中的机器人使用Lucene查询语法,精准的找到聊天当中的日期和关键词。当用户直接输入关键词的时候,搜索结果却大不尽人意,深究其原因,
可以为大家举一个例子详细阐述,比如在聊天当中查询一个含有“美物”(实际上是美味的食物)消息,
- ·简单粗暴输入“美物”查询,搜索结果铺天盖地而来。由于未遵循查询语法,系统就会默认将所有含有“美”和“物”的内容全部展现出来,内容非常的庞大。
- ·根据平台语法需求,输入“+美物”,系统提供的搜索信息内容依然很多。毕竟在系统的认知当中,“美物”并不是一个名词,就会自动将包含这两个词语的消息全部罗列出来,供大家进行选择。
- ·以上两种做法都比较片面,很难快速找到想要的答案,需要输入“+美 +物”这样进行搜索,系统就判明搜索内容必须还有“美”和“物”这两个关键词,搜索范围和内容就会大大减少。
总结
总结一下各种思路所带来的不一样体验!
·电报自带搜索:主要基于Telegram框架,不支持分类,需要按日期搜索,准确搜索关键词能力较差,对中文用户搜索十分不友好。
Tag与空格:基于Telegram框架,不能够准确搜索关键词,需要按日期进行搜索,不支持的分类,操作过程当中的难度非常大。
自留地导航(博客):能够准确搜索关键词,没有基于Telegram框架,不支持分类,不按照日期进行搜索,需要付出过多的人力。
Telegram索引Bot:不支持分类,基于Telegram框架,准确搜索关键词,按照日期搜。优势比较明显,搜索内容精确,基于TG,需要自学搜索语法和服务器开销。
Web搜索引擎:准确搜索关键词,不基于Telegram框架,不支持分类,不按日期搜,,精确度可以保障,但需要浏览器和站主收录之后。
通过以上比较详细的介绍,对各种方案有了更加直观的了解。对于中国用户和其他小语种用户,在电报没有添加非英语语种的分词搜索措施之前,我们不仅可以按照以上几种方法进行操作,
还可以不断根据自身能力进行突破,改善用户们的搜索体验。
方案的其他思路
·个人操作难度比较大,对于个人而言,Windows端支持导出频道全部的内容,将这些内容放置到浏览器当中,进行搜索就可以。
·对于群主和频道主,一方面所面临的消息内容比较多,另一方面,能力比较强大,可以制作一个关键词回复的机器人,效果将会更加明显。当触发某个关键词之后,回复机器人就可以自动回复相关内容
或者链接,只不过这种方法的操作难度比较大,关键词内容也很不明确,只能满足少部分人的使用需求,而且只能面向一些常用的内容。