From e82fa419e928a17bc45850c589589bd571176b50 Mon Sep 17 00:00:00 2001 From: Yrobot Date: Sun, 7 Dec 2025 00:49:43 +0800 Subject: [PATCH] add README --- README.md | 343 +++++++++++++++++++++++++++++++++++++++++++++++++ screenshot.png | Bin 0 -> 39359 bytes 2 files changed, 343 insertions(+) create mode 100644 README.md create mode 100644 screenshot.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..de17d42 --- /dev/null +++ b/README.md @@ -0,0 +1,343 @@ +# Cloudflare Search + +> 基于 Cloudflare Workers 的聚合搜索 API 服务 + +[![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/Yrobot/cloudflare-search) + +## 特性 + +- 🔍 **多引擎聚合** - 同时使用多个搜索引擎(Google、Brave、DuckDuckGo、Bing) +- ⚡ **并行搜索** - 所有搜索引擎同时请求,快速返回结果 +- 🛡️ **容错机制** - 单个引擎失败不影响其他引擎,自动标记无响应引擎 +- ⏱️ **超时控制** - 可配置请求超时时间,避免长时间等待 +- 🌍 **CORS 支持** - 完整的跨域资源共享支持 +- 🎨 **Web 界面** - 提供简洁的搜索界面,方便测试 +- ⚡ **零成本运行** - Cloudflare Workers 免费版每天 10 万次请求 + +## 页面展示 + +![screenshot](./screenshot.png) + +## 安装方式 + +### 方式一:一键部署(推荐) + +点击上方 "Deploy to Cloudflare Workers" 按钮,按照提示完成部署。 + +### 方式二:使用 Wrangler CLI + +```bash +# 1. 安装 Wrangler +npm install -g wrangler + +# 2. 登录 Cloudflare +wrangler login + +# 3. 克隆仓库 +git clone https://github.com/Yrobot/cloudflare-search.git +cd cloudflare-search + +# 4. 部署 +wrangler deploy +``` + +### 方式三:使用 Cloudflare Dashboard + +1. 登录 [Cloudflare Dashboard](https://dash.cloudflare.com/) +2. 进入 **Workers & Pages** +3. 点击 **Create Application** > **Create Worker** +4. 点击 **Upload** 上传本地代码文件夹 + - 选择克隆的 `cloudflare-search` 文件夹 + - 或者手动复制 `worker.js`、`envs.js`、`utils/` 等文件 +5. 点击 **Save and Deploy** + +### 获取访问地址 + +部署成功后,你会获得一个 Worker URL: + +``` +https://your-worker-name.your-subdomain.workers.dev +``` + +**注意**:这个自带的域名在某些区域可能无法直接访问,建议绑定自己的域名使用。 + +## 使用方式 + +### 方式 1: Web 界面 + +直接访问你的 Worker URL,在网页界面输入搜索关键词: + +``` +https://$YOUR-DOMAIN/ +``` + +### 方式 2: API 请求(GET) + +使用查询参数进行搜索: + +```bash +# 基本搜索 +curl "https://$YOUR-DOMAIN/search?q=cloudflare" + +# 指定搜索引擎 +curl "https://$YOUR-DOMAIN/search?q=cloudflare&engines=google,brave" +``` + +### 方式 3: API 请求(POST) + +通过 POST 表单提交搜索: + +```bash +curl -X POST "https://$YOUR-DOMAIN/search" \ + -d "q=cloudflare" \ + -d "engines=google,brave" +``` + +## API 接口说明 + +### `/search` 接口 + +用于执行搜索查询并返回聚合结果。 + +#### 请求参数 + +| 参数 | 类型 | 必填 | 说明 | 示例 | +| ------------- | -------- | ---- | ---------------------------- | -------------- | +| `q` / `query` | `string` | yes | 搜索关键词 | `cloudflare` | +| `engines` | `string` | no | 指定搜索引擎,多个用逗号分隔 | `google,brave` | + +**支持的搜索引擎**: + +- `google` - Google 搜索(需要配置 API Key) +- `brave` - Brave 搜索 +- `duckduckgo` - DuckDuckGo 搜索 +- `bing` - Bing 搜索 + +#### 返回值 + +```typescript +{ + query: string; // 搜索关键词 + number_of_results: number; // 结果总数 + enabled_engines: string[]; // 启用的搜索引擎列表 + unresponsive_engines: string[]; // 无响应的搜索引擎列表 + results: Array<{ + title: string; // 结果标题 + description: string; // 结果描述 + url: string; // 结果链接 + engine: string; // 来源引擎 + }>; +} +``` + +#### 请求示例 + +```bash +# GET 请求 +curl "https://$YOUR-DOMAIN/search?q=cloudflare&engines=google,brave" + +# POST 请求 +curl -X POST "https://$YOUR-DOMAIN/search" \ + -H "Content-Type: application/x-www-form-urlencoded" \ + -d "q=cloudflare&engines=google,brave" +``` + +#### 响应示例 + +```json +{ + "query": "cloudflare", + "number_of_results": 15, + "enabled_engines": ["google", "brave", "duckduckgo"], + "unresponsive_engines": [], + "results": [ + { + "title": "Cloudflare - The Web Performance & Security Company", + "description": "Cloudflare is on a mission to help build a better Internet...", + "url": "https://www.cloudflare.com/", + "engine": "google" + }, + { + "title": "Cloudflare Workers", + "description": "Deploy serverless code instantly across the globe...", + "url": "https://workers.cloudflare.com/", + "engine": "brave" + } + ] +} +``` + +## 搜索引擎说明 + +### 支持的搜索引擎 + +| 引擎 | 说明 | 是否需要配置 | 默认启用 | +| -------------- | ------------------------ | ----------------------------- | --------------- | +| **Google** | Google Custom Search API | 需要 GOOGLE_API_KEY GOOGLE_CX | yes | +| **Brave** | Brave Search API | - | yes | +| **DuckDuckGo** | DuckDuckGo 即时答案 API | - | yes | +| **Bing** | Bing 搜索 | - | no (结果不稳定) | + +### 基本工作方案 + +1. **并行请求**:所有启用的搜索引擎同时发起请求,提高响应速度 +2. **超时控制**:单个引擎超时不影响其他引擎,默认 3 秒超时 +3. **结果聚合**:将所有成功返回的结果合并,标记来源引擎 +4. **容错处理**:记录无响应的引擎,返回部分结果而不是完全失败 + +### 搜索引擎选择建议 + +- **无需配置快速部署**:使用 `brave` + `duckduckgo` +- **高质量结果**:配置 Google API 并使用 `google` + `brave` +- **最大覆盖**:启用所有引擎 `google,brave,duckduckgo,bing` + +## 环境变量配置 + +### 环境变量说明 + +| 变量名 | 类型 | 默认值 | 说明 | +| ----------------- | -------- | -------- | ------------------------------------------------- | +| `DEFAULT_TIMEOUT` | `string` | `"3000"` | 单个搜索引擎的超时时间(毫秒) | +| `GOOGLE_API_KEY` | `string` | `null` | https://console.cloud.google.com/apis/credentials | +| `GOOGLE_CX` | `string` | `null` | https://programmablesearchengine.google.com/ | + +**注意**:Google Custom Search API 免费版每天限制 100 次请求。 + +### 配置方式 + +#### 方式 1: wrangler.toml 文件 + +编辑 `wrangler.toml` 文件中的 `[vars]` 部分: + +```toml +[vars] +GOOGLE_API_KEY = "your-google-api-key" +GOOGLE_CX = "your-google-custom-search-cx" +DEFAULT_TIMEOUT = "5000" +``` + +#### 方式 2: Cloudflare Dashboard + +1. 进入 Worker 设置页面 +2. 找到 **Environment Variables** 部分 +3. 添加变量并保存 + +## 使用场景 + +### 1. 聚合搜索服务 + +构建自己的搜索聚合 API,整合多个搜索引擎结果: + +```javascript +const response = await fetch( + "https://$YOUR-DOMAIN/search?q=javascript&engines=google,brave" +); +const data = await response.json(); +console.log(`找到 ${data.number_of_results} 个结果`); +``` + +### 2. 前端搜索功能 + +为网站或应用添加搜索功能: + +```javascript +async function search(query) { + const response = await fetch( + `https://$YOUR-DOMAIN/search?q=${encodeURIComponent(query)}` + ); + const data = await response.json(); + return data.results; +} +``` + +### 3. 数据采集与分析 + +收集多个搜索引擎的结果进行对比分析: + +```javascript +const engines = ["google", "brave", "duckduckgo"]; +const results = await fetch( + `https://$YOUR-DOMAIN/search?q=AI&engines=${engines.join(",")}` +); +const data = await results.json(); + +// 按引擎分组 +const byEngine = data.results.reduce((acc, result) => { + acc[result.engine] = acc[result.engine] || []; + acc[result.engine].push(result); + return acc; +}, {}); +``` + +## 注意与提醒 + +### 🚨 重要提示 + +1. **使用自定义域名** + + - Cloudflare 默认的 `*.workers.dev` 域名在某些地区可能无法访问 + - **强烈建议**绑定自己的域名以获得更好的访问体验 + - 在 Worker 设置中点击 **Triggers** > **Add Custom Domain** 添加自定义域名 + +2. **搜索引擎限制** + + - Google API 免费版每天限制 100 次请求 + - 其他搜索引擎一般没有严格限制,但请合理使用 + - 频繁请求可能导致被临时限制访问 + +3. **超时设置** + - 默认单个引擎超时 3 秒 + - 可通过环境变量 `DEFAULT_TIMEOUT` 调整 + - 建议不要设置过长,避免整体响应时间过长 + +## 常见问题 + +### Q: 为什么有些搜索引擎返回结果为空? + +A: 可能原因: + +- 搜索引擎 API 临时不可用或响应超时 +- 搜索关键词没有相关结果 +- 搜索引擎限制了访问频率 +- Google 需要配置 API Key 才能使用 + +可以查看返回的 `unresponsive_engines` 字段了解哪些引擎没有响应。 + +### Q: 如何提高搜索速度? + +A: 建议: + +- 减少启用的搜索引擎数量,只使用需要的引擎 +- 适当调整超时时间(`DEFAULT_TIMEOUT`) + +### Q: Bing 搜索为什么默认禁用? + +A: Bing 搜索结果目前不够稳定,经常返回空结果或格式不一致。如需使用,可以在请求时手动指定:`engines=bing` 或修改 `envs.js` 中的 `DEFAULT_ENGINES`。 + +## 免责声明 + +本项目仅供学习和研究使用,使用者需遵守以下规定: + +1. **合法使用** - 仅用于合法搜索需求,不得用于违法或侵权用途 +2. **服务条款** - 使用时需遵守 Cloudflare Workers 和各搜索引擎的服务条款 +3. **API 限制** - 遵守各搜索引擎 API 的使用限制和配额 +4. **责任自负** - 使用本服务产生的任何后果由使用者自行承担 +5. **商业用途** - 如需商业使用,请确保符合相关法律法规和服务条款 + +## 贡献 + +欢迎提交 Issue 和 Pull Request! + +## 许可证 + +[GPL-3 License](LICENSE) + +## 相关链接 + +- [项目 GitHub](https://github.com/Yrobot/cloudflare-search) +- [Cloudflare Workers 文档](https://developers.cloudflare.com/workers/) +- [Google Custom Search API](https://developers.google.com/custom-search/v1/overview) + +--- + +**如果这个项目对你有帮助,请在 [GitHub](https://github.com/Yrobot/cloudflare-search) 上给我们一个 ⭐️** diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..c6256203b050334a5b2212772e3b04709d894c65 GIT binary patch literal 39359 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 z�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 Z`FdU6b$nwIbW%Qvr6;Z>{0~{Alq&!L literal 0 HcmV?d00001