ApolloDatabase 是一个高性能的文档搜索平台,专为百度 Apollo(自动驾驶开放平台)官方文档设计。该平台采用现代化的前端技术栈和高效的搜索引擎,通过智能爬虫自动获取并索引 Apollo 官网的技术文档内容,为开发者和用户提供快速、准确的全文搜索服务,大幅提升信息检索效率。
- 高性能全文搜索:基于 Meilisearch 搜索引擎,支持模糊匹配、拼写纠错和多语言搜索
- 关键词智能高亮:搜索结果中自动高亮显示匹配关键词,提升阅读体验
- 自动内容爬取:定期自动爬取百度 Apollo 官网最新文章,保持内容时效性
- 增量更新机制:智能检测并仅爬取新增或更新的内容,减少系统资源占用
- 响应式现代界面:基于 React 19、Next.js 15 和 Tailwind CSS 4 构建的美观响应式界面
- 服务端渲染优化:采用 Next.js App Router 架构,提供更好的性能和 SEO 支持
- 高级搜索选项:支持按文档类别、时间范围和相关度排序等高级筛选
- 分页与排序功能:智能分页算法和多种排序方式,优化大量结果的浏览体验
- 移动端友好设计:完全适配移动设备,提供流畅的移动搜索体验
- 框架: React 19, Next.js 15 (App Router)
- UI组件: Shadcn UI, Radix UI
- 样式: Tailwind CSS 4
- 状态管理: React Hooks + Context API
- 类型系统: TypeScript 5.4.5
- API服务: Next.js API Routes
- 搜索引擎: Meilisearch 0.50.0
- 爬虫工具: Axios, Cheerio
- 数据处理: Node.js Streams
- 开发语言: TypeScript
- 构建工具: Turbopack
- 部署环境: Vercel / Docker
- Node.js (v18.0.0+)
- Yarn 包管理器
- Docker (用于运行 Meilisearch)
- 克隆仓库
git clone https://github.com/SakuraPuare/ApolloDatabase.git
cd ApolloDatabase- 安装依赖
yarn install- 环境配置
复制示例环境配置文件并根据需要修改:
cp .env.example .env.development- 启动 Meilisearch
使用 Docker 运行 Meilisearch:
docker run -p 7700:7700 -v $(pwd)/meili_data:/meili_data getmeili/meilisearch:v1.5- 初始爬取数据
yarn spider:new- 启动开发服务器
yarn dev现在,你可以在浏览器中访问 http://localhost:3000 查看应用。
- 构建生产版本
yarn build
yarn startyarn spider:update可以通过 cron 作业设置定期运行爬虫脚本,例如:
# 每天凌晨2点运行更新爬虫
0 2 * * * cd /path/to/ApolloDatabase && yarn spider:updateApolloDatabase/
├── src/ # 源代码目录
│ ├── app/ # Next.js App Router 页面
│ │ └── search/ # 搜索相关组件
│ ├── components/ # React 组件
│ │ └── search/ # 搜索相关组件
│ ├── lib/ # 核心库和工具函数
│ ├── services/ # 服务层,处理业务逻辑
│ ├── spider/ # 爬虫相关代码
│ └── utils/ # 通用工具函数
├── data/ # 存储爬取的数据
│ └── apollo-docs/ # Apollo文档数据
├── .env.development # 开发环境配置
├── .env.production # 生产环境配置
└── next.config.ts # Next.js 配置
- 访问首页,在搜索框中输入关键词
- 点击搜索按钮或按 Enter 键开始搜索
- 浏览搜索结果,点击文章标题查看完整内容
- 使用筛选选项优化搜索结果
- 使用分页控件浏览更多结果
主要配置选项位于环境文件中(.env.development 或 .env.production):
MEILISEARCH_HOST: Meilisearch 服务器地址MEILISEARCH_API_KEY: Meilisearch API 密钥APOLLO_BASE_URL: Apollo 官网基础URLCRAWL_INTERVAL: 爬虫运行间隔(毫秒)MAX_CONCURRENT_REQUESTS: 最大并发请求数
本项目基于 MIT 许可证开源 - 详见 LICENSE 文件
Steven Moder - java20131114@gmail.com
- 百度 Apollo 自动驾驶开放平台 - 提供优质的自动驾驶技术文档
- Meilisearch - 提供出色的搜索引擎技术
- Next.js - 提供强大的 React 框架
- Tailwind CSS - 提供优秀的 CSS 框架
- Shadcn UI - 提供高质量的UI组件库
- 添加用户认证系统
- 实现个性化搜索偏好保存
- 支持文档评论和标注
- 添加更多数据源支持
- 实现文档内容差异对比功能
🚀 如有任何问题或建议,欢迎提交 Issue 或 Pull Request