Comment j'ai fait un moteur de recherche pour Telegram

Il était une fois dans une galaxie lointaine et lointaine , quand les arbres étaient grands et Internet était petit, il n'y avait pas de domination des moteurs de recherche. Ils ont juste commencé à apparaître et étaient plutôt simples et "stupides". Un développement important a été donné aux répertoires, où par thèmes, il a été établi quels sites sur votre Internet sont les vôtres. Je suis allé à la section, j'ai trouvé un site, profitez-en.

image

Et puis AltaVista, Google, Yahoo, Yandex, Aport, Rambler et d'autres sont apparus. Et maintenant, toute cette situation se répète avec Telegram, comme il me semble. Il existe des répertoires, mais il n'y a presque pas de recherche.
Bien sûr, il y a une recherche dans le télégramme lui-même, mais cela ne fonctionne qu'avec les groupes, les canaux et la correspondance que vous avez déjà ajoutés à vous-même. Il n'y a pas de recherche globale de groupes et de chaînes.
Et comme il n'est pas là, pourquoi ne pas le faire, pensai-je? C'est juste que mes mains se grattent les mains depuis longtemps pour essayer Elasticsearch, et ici l'occasion s'est présentée.

L'idée est simple: «s'asseoir» sur la puissance du télégramme, et non pas faire votre ferme en analysant les canaux et les groupes. Pour ce faire, nous créons un bot qui lit simplement tous les messages du groupe et l'ajoute à l'index dans Elasticsearch. Eh bien, déjà dans l'interface Web ou via le bot, nous pouvons rechercher tous les groupes et canaux où se trouve un tel bot.

Et déjà au stade de la mise en œuvre, cette brillante pensée a subi quelques changements. Il s'est avéré que vous pouvez ajouter au bot dans le canal uniquement en tant qu'administrateur. Et l'administrateur ne peut pas se voir refuser toutes les actions. Il s'avère que pour ajouter le bot de quelqu'un d'autre à sa chaîne, il doit au moins autoriser quelque chose. Et là, toutes les autorisations sont assez sensibles. Alors là, j'ai quelques difficultés. C'est-à-dire il est clair qu'il est possible de s'entendre sur la foi et la conviction personnelle. Et, par exemple, "Changer le profil de la chaîne" n'est pas un privilège terrible, mais à partir d'une position solide de la chaîne, vous ne voulez pas le donner à personne de toute façon. Alors là, je demande de l'aide à la communauté - existe-t-il un moyen de contourner ces restrictions?

Eh bien, au moins, il n'y avait pas de tels problèmes avec les groupes!

Ce n'était pas difficile de faire un bot, avec elasticsearch j'ai aussi compris rapidement, cela a pris plusieurs jours. Mais il y avait quelques problèmes avec la recherche morphologique russe dans la dernière version d'Elasticsearch. J'ai dû fumer des manuels sur le sujet de la connexion de dictionnaires russes de hunspell. L'index est assez simple. Le texte du message, le nom du canal / groupe, son numéro, l'identifiant du message et l'utilisateur sont pris en compte. Eh bien, j'ai fait séparément un index où les demandes au bot sont ajoutées, pour les statistiques.

Je voulais parler de la composante technique du travail, mais j'ai réalisé qu'ils avaient déjà écrit des bots une douzaine de fois, sur elasticsearch lui-même, il y a aussi beaucoup d'articles, et je n'ai aucune fonctionnalité à utiliser - juste une recherche en texte intégral. La façon de travailler avec elasticsearch à partir de php semble également être simple - je l'ai installé à partir de composer et c'est parti.

En conséquence, le système s'est avéré très simple, assez facilement évolutif et, espérons-le, utile. Il est clair que maintenant seuls quelques groupes ont été ajoutés au bot et vous ne devez pas compter sur une recherche pertinente.

Mais j'espère que les émetteurs de télégrammes ajouteront le bot à leurs groupes et que sa base augmentera considérablement. Voici le bot @TelegaIndexBot , voici l'interface web tgindex.ru - bienvenue!

Bien sûr, les critiques et autres souhaits sont les bienvenus.

ps a fait un groupe pour "jouer". t.me/telegaindex - si vous y ajoutez du texte, il est indexé par le bot. Vous pouvez effectuer quelques expériences.

Source: https://habr.com/ru/post/fr484368/


All Articles