💡
原文中文,约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 可视化观测系统,统计搜索量和新增收录量等指标。
❓
延伸问答
RawWeb.org 的主要目标是什么?
RawWeb.org 的主要目标是展示被主流搜索引擎忽视的个人数字花园。
RawWeb.org 使用了哪些技术栈?
RawWeb.org 使用了 PostgreSQL、Redis、Elasticsearch、Django、Nest.js 和 Go 等技术。
RawWeb.org 如何支持多语言内容索引?
RawWeb.org 在 Elasticsearch 中设置了多个字段以存放不同语言的内容,并使用专用分词器进行处理。
RawWeb.org 的爬虫是如何工作的?
RawWeb.org 的爬虫仅从网站的 RSS 中获取数据源,使用简单的 HTTP 请求器和 RSS 解析器。
为什么选择 Go 作为 RawWeb.org 的后端技术?
选择 Go 是因为其简化语法和高效的 AI IDE 提升了开发体验,同时 GORM Gen 提供了类型安全的 ORM 解决方案。
RawWeb.org 未来有哪些计划?
RawWeb.org 未来计划自建 Prometheus + Grafana 可视化观测系统,统计搜索量和新增收录量等指标。
➡️