Érase una vez en una
galaxia distante, distante , cuando los árboles eran grandes y la Internet era pequeña, no había dominio de los motores de búsqueda. Empezaron a aparecer y eran bastante simples y "tontos". Se dio un desarrollo significativo a los directorios, donde por temas se estableció qué sitios en este Internet son los suyos. Fui a la sección, encontré un sitio, disfrútalo.

Y luego aparecieron AltaVista, Google, Yahoo, Yandex, Aport, Rambler y otros. Y ahora, toda esta situación se repite con Telegram, como me parece. Hay directorios, pero casi no hay búsqueda.
Por supuesto, hay una búsqueda en el propio Telegram, pero solo funciona con esos grupos, canales y correspondencia que ya ha agregado a usted mismo. No hay búsqueda global de grupos y canales.
Y como él no está allí, ¿por qué no hacerlo, pensé? Es solo que mis manos me han estado rascando las manos durante mucho tiempo para probar Elasticsearch, y aquí apareció la ocasión.
La idea es simple: "sentarse" sobre el poder del Telegram y no hacer su granja analizando canales y grupos. Para hacer esto, creamos un bot que simplemente lee todos los mensajes del grupo y lo agrega al índice en Elasticsearch. Bueno, entonces ya en la interfaz web o a través del bot, podemos buscar en todos los grupos y canales donde está ese bot.
Y ya en la etapa de implementación, este pensamiento brillante experimentó algunos cambios. Al final resultó que, puede agregar al bot en el canal solo como administrador. Y al administrador no se le pueden negar todas las acciones. Resulta que para agregar el bot de otra persona a su canal, necesita al menos permitir algo. Y allí todos los permisos son bastante sensibles. Entonces aquí tengo algunas dificultades. Es decir Está claro que es posible ponerse de acuerdo sobre la fe y la convicción personal. Y, por ejemplo, "Cambiar el perfil del canal" no es un privilegio terrible, pero a partir de una posición sólida del canal, tampoco será deseable dárselo a nadie. Entonces, le pido ayuda a la comunidad: ¿hay alguna forma de evitar estas restricciones?
Bueno, al menos no hubo tales problemas con los grupos.
No fue difícil hacer un bot, con Elasticsearch también descubrí rápidamente, me llevó varios días. Pero hubo algunos problemas con la búsqueda morfológica rusa en la última versión de Elasticsearch. Tuve que fumar manuales sobre el tema de conectar diccionarios rusos de hunspell. El índice es bastante simple. Se tienen en cuenta el texto del mensaje, el nombre del canal / grupo, su número, la identificación del mensaje y el usuario. Bueno, hice un índice por separado donde se agregan las solicitudes al bot, para las estadísticas.
Quería hablar sobre el componente técnico del trabajo, pero me di cuenta de que ya escribieron sobre escribir bots una docena de veces, sobre Elasticsearch también hay muchos artículos, y no tengo características de uso, solo búsqueda de texto completo. Cómo trabajar con elasticsearch desde php también parece ser simple: lo instalé desde el compositor y listo.
Como resultado, el sistema resultó ser muy simple, fácilmente escalable y, con suerte, útil. Está claro que ahora solo se han agregado unos pocos grupos al bot y no debe contar con ninguna búsqueda relevante.
Pero espero que los telegram-muvers agreguen el bot a sus grupos y su base aumente significativamente. Aquí está el bot
@TelegaIndexBot , aquí está la interfaz web
tgindex.ru - ¡bienvenido!
Bueno, por supuesto, las críticas y otros deseos son bienvenidos.
ps hizo un grupo para "jugar".
t.me/telegaindex : si le agrega texto, el bot lo indexará. Puedes realizar algunos experimentos.