我如何为电报创建搜索引擎

曾几何时,在遥远的星系中 ,树木很大,而互联网很小,因此搜索引擎没有统治地位。 它们刚刚开始出现,相当简单和“笨拙”。 目录得到了重大发展,其中按主题列出了您在此Internet上的站点。 我去了那部分,找到了一个站点,尽情享受。

图片

然后出现了AltaVista,Google,Yahoo,Yandex,Aport,Rambler等。 现在,在我看来,Telegram重复了整个情况。 有目录,但几乎没有搜索。
当然,电报本身会进行搜索,但仅适用于您已经添加到自己的组,频道和通信。 没有针对群组和渠道的全局搜索。
而且既然他不在那,为什么我不这样做呢? 只是我的手已经摸挠了很长时间才能尝试Elasticsearch,到此机会来了。

这个想法很简单-“坐下来”使用Telegram的功能,而不是通过解析频道和组来进行工作。 为此,我们创建了一个仅读取组中所有消息并将其添加到Elasticsearch索引中的机器人。 好了,那么已经在Web界面中或通过Bot,我们可以搜索Bot所在的所有组和渠道。

并且已经在实施阶段,这一出色的思想发生了一些变化。 事实证明,您只能以管理员身份添加到渠道中的漫游器。 并且不能拒绝管理员执行所有操作。 事实证明,为了将其他人的漫游器添加到他的频道,他至少需要允许一些东西。 而且所有权限都很敏感。 所以在这里我有一些困难。 即 很明显,可以就信仰和个人信念达成一致。 并且,例如,“更改频道的配置文件”并不是一个可怕的特权,但是从频道的某个固定位置开始,也不希望将其提供给任何人。 因此,我在这里向社区寻求帮助-有什么办法可以解决这些限制吗?

好吧,至少团体没有这种问题!

制作机器人并不难,我也很快就发现了Elasticsearch,花了几天的时间。 但是最新版本的Elasticsearch中的俄语形态搜索存在一些问题。 我不得不抽烟手册,以连接俄罗斯的汉斯佩尔词典。 索引非常简单。 消息的文本,通道/组的名称,其编号,消息ID和用户均已考虑在内。 好吧,我单独制作了一个索引,其中添加了对机器人的请求,以进行统计。

我想谈谈工作的技术部分,但是我意识到他们已经写了十多次关于机器人的文章,关于Elasticsearch本身也有很多文章,而且我没有使用的功能-仅仅是全文搜索。 如何从php使用elasticsearch似乎也很简单-我是从composer安装并运行的。

结果,该系统变得非常简单,相当容易地扩展并且希望有用。 很明显,现在只有少数几个组已添加到该漫游器中,您不应该依赖任何相关搜索。

但是我希望电报移动者将其添加到他们的团队中,并且其基础将大大增加。 这是@TelegaIndexBot机器人,这是tgindex.ru网络界面-欢迎使用!

好吧,当然,欢迎批评和其他希望。

ps组成了一个小组来“玩耍”。 t.me/telegaindex-如果您向其中添加文字,则该文字会被机器人索引。 您可以进行一些实验。

Source: https://habr.com/ru/post/zh-CN484368/


All Articles