💡
原文中文,约4100字,阅读约需10分钟。
📝
内容提要
RawWeb.org 是一个搜索引擎项目,旨在展示被忽视的个人数字花园,已收录17,000个站点和615,000篇文章。该项目使用PostgreSQL、Redis和Elasticsearch等技术,支持多语言内容索引。经过Django、Nest.js和Go的重构,最终选择Go作为后端,前端使用SvelteKit,基础设施采用Docker Compose,部署在Hetzner VPS上。
🎯
关键要点
- RawWeb.org 是一个搜索引擎项目,旨在展示被忽视的个人数字花园,已收录17,000个站点和615,000篇文章。
- 项目使用 PostgreSQL、Redis 和 Elasticsearch 等技术,支持多语言内容索引。
- 爬虫仅从网站的 RSS 中获取数据源,使用简单的 HTTP 请求器和 RSS 解析器。
- 为了支持多语言,Elasticsearch 中设置了多个字段以存放不同语言的内容。
- 内容清洗过程包括解析 HTML、去除无用标签和多余空白字符。
- 语言识别使用了两种方案,最终选择了性能更好的 lingua。
- 后端经历了 Django、Nest.js 和 Go 三次重构,最终选择 Go 作为后端技术。
- Go 的简化语法和高效的 AI IDE 提升了开发体验,GORM Gen 提供了类型安全的 ORM 解决方案。
- 基础设施使用 Docker Compose 编排,部署在 Hetzner VPS 上,拒绝 vendor lock-in。
- 未来计划自建 Prometheus + Grafana 可视化观测系统,统计搜索量和新增收录量等指标。
➡️