字
字节笔记本
2026年2月16日
开源项目分享:Telegram-Search , 导出并搜索 Telegram 聊天记录
API中转
¥120
本文介绍 Telegram-Search,一个用于导出并本地搜索 Telegram 聊天记录的开源工具。该项目支持关键词搜索、模糊匹配及语义搜索,可快速定位历史消息,并可选结合 AI 进行聊天记录问答。
项目简介
Telegram-Search 是一个开源的 Telegram 聊天记录导出与搜索工具,由 groupultra 团队开发维护。截至目前,该项目在 GitHub 上已获得 3,700+ stars,主要使用 TypeScript 编写,采用 AGPL-3.0 开源协议。
该工具解决了 Telegram 官方客户端无法有效搜索中文聊天记录的痛点,让用户能够便捷地备份并检索自己的 Telegram 消息。无论任何语言,强大的本地分词能力都能准确命中搜索结果。
核心特性
导出与备份
- 多数据库支持:兼容 PGlite 与 PostgreSQL,灵活选择存储方案
- 媒体资源自动备份:可配置 MinIO 对象存储,无需手动干预
- 智能预处理:消息导出时自动完成向量嵌入与分词处理
- 实时同步:自动拉取并更新最新对话内容
聊天记录搜索
- 智能分词:自动分词支持多语言精准检索
- 混合搜索:融合模糊匹配与向量语义搜索,查找效率更高
- RAG 智能问答:直接与 AI 聊天,基于历史上下文获得实时解答
高级功能
- 未读消息智能摘要:一键汇总全部未读消息,自动生成精炼摘要
技术栈
- TypeScript - 主要开发语言
- PGlite / PostgreSQL - 数据库存储
- MinIO - 对象存储(媒体文件)
- 向量嵌入 - 语义搜索支持
- Docker - 容器化部署
安装指南
前置要求
- Docker 和 Docker Compose(推荐)
- 或 Node.js >= 18 + pnpm(开发模式)
使用 Docker Compose(推荐)
- 创建项目目录:
bash
mkdir telegram-search
cd telegram-search- 下载配置文件并启动服务:
bash
curl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/docker-compose.yml -o docker-compose.yml
curl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/.env.example -o .env
curl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/init.sql -o init.sql
docker compose -f docker-compose.yml up -d- 访问 http://localhost:3333 即可使用
使用 Docker Image
bash
docker run -d --name telegram-search -p 3333:3333 ghcr.io/groupultra/telegram-search:latest快速开始
配置 Telegram API
- 访问 https://my.telegram.org/apps 创建应用
- 获取
API_ID和API_HASH - 在环境变量中配置:
bash
TELEGRAM_API_ID=你的API_ID
TELEGRAM_API_HASH=你的API_HASH开始使用
- 打开 Web 界面
- 使用 Telegram 账号登录
- 选择要导出的对话
- 开始同步消息
- 使用搜索功能查找历史消息
使用示例
场景 1:基础搜索
在搜索框输入关键词,系统将自动进行分词并返回匹配结果。支持中文、英文等多种语言。
场景 2:语义搜索
输入自然语言描述,如「上周关于项目的讨论」,向量搜索将理解语义并返回相关消息。
场景 3:AI 问答
启用 AI 功能后,可以直接提问:「总结一下我和张三关于合同的沟通内容」,AI 将基于聊天记录给出答案。
环境变量配置
| 环境变量 | 说明 | 示例值 |
|---|---|---|
TELEGRAM_API_ID | Telegram 应用 ID | 611335 |
TELEGRAM_API_HASH | Telegram 应用 Hash | d524b414d21f4d37f08684c1df41ac9c |
DATABASE_TYPE | 数据库类型 | pglite 或 postgres |
DATABASE_URL | PostgreSQL 连接字符串 | postgresql://user:pass@host:5432/db |
PROXY_URL | 代理地址 | socks5://user:pass@host:port |
MINIO_URL | MinIO 服务地址 | http://minio:9000 |
开发指南
纯浏览器模式
bash
git clone https://github.com/groupultra/telegram-search.git
cd telegram-search
pnpm install
cp .env.example .env
pnpm run dev服务器模式
bash
git clone https://github.com/groupultra/telegram-search.git
cd telegram-search
pnpm install
cp .env.example .env
# 启动依赖服务
docker compose -f docker/docker-compose.dev.yml up -d pgvector minio
# 分别启动前后端
pnpm run server:dev
pnpm run web:dev未来路线图
AI 能力增强
- 自动生成会话总结
- "超级大脑":基于历史消息自动构建人物与事件的知识图谱
媒体与链接拓展
- 智能整理"已保存消息"收藏夹
- 链接与图片深度索引:网页摘要、图片 OCR 文字识别
多平台融合
- 新增 Telegram Bot 支持
- 跨平台扩展:支持 Discord 及其他主流社交平台
注意事项
- 本项目仅供导出和检索个人聊天记录使用
- 数据由用户自行保存与管理,适合个人私有化部署
- 项目未发行任何虚拟货币,请警惕相关诈骗风险
项目链接
- GitHub 仓库:https://github.com/groupultra/telegram-search
- 在线体验:https://search.lingogram.app
- Discord 社区:https://discord.gg/NzYsmJSgCT
- Telegram 群组:https://t.me/+Gs3SH2qAPeFhYmU9
分享: