# 优化搜索结果

> 选择搜索来源、获取完整页面文本，并按站点、时间和语言缩小 Search1API 的搜索结果范围。

Canonical URL: https://s1.dev/zh/docs/guides/improving-search-results

先使用默认的搜索行为，只有当结果表明确实需要时，再添加约束条件。

## 从默认来源开始

如果省略 `search_service`，Search1API 会搜索 Google，效果与发送 `"search_service": "google"` 相同。需要通用网页覆盖时，保持这个默认值即可。

当来源本身就是请求的一部分时，设置 `search_service`：

```json
{ "query": "rust async runtime", "search_service": "reddit" }
```

例如，Reddit 适合查找使用经验分享，GitHub 适合查找代码和 issue，arXiv 适合查找论文，YouTube 适合查找视频。

## 可用的网页搜索来源

| 来源 | 适用场景 |
| --- | --- |
| `google` | 通用网页 |
| `bing` | 通用网页 |
| `bingcn` | 中文 Bing |
| `duckduckgo` | 通用网页 |
| `yahoo` | 通用网页 |
| `yandex` | 通用网页，尤其是俄罗斯和独联体地区 |
| `x` | X 上的帖子和反应 |
| `reddit` | 讨论和使用经验分享 |
| `github` | 仓库、issue、pull request 和 discussion |
| `youtube` | 视频 |
| `arxiv` | 预印本和学术论文 |
| `wikipedia` | 百科背景知识 |
| `grokipedia` | 来自 Grokipedia 的英文百科背景知识（Powered by xAI） |
| `imdb` | Google 索引的 IMDb 页面，涉及电影、人物和演职员信息 |
| `wechat` | 微信公众号文章 |
| `bilibili` | 中文视频 |
| `baidu` | 中文通用网页 |
| `quark` | 中文通用网页 |
| `360` | 中文通用网页 |

`/news` 使用另一套来源集合：`google`、`bing`、`duckduckgo`、`yahoo`、`hackernews` 和 `reuters`。对于新闻搜索，省略 `search_service` 同样会启用默认的多来源行为。

社区类来源会在每条结果的 `metadata` 中添加可选的结构化字段。通用字段（`title`、`link`、`snippet`，以及可选的 `content` 和 `published_date`）仍位于结果的顶层。没有适用的引擎专属字段时，会省略 `metadata`：

- `github` 结果带有 `metadata.kind`（`repo`、`issue`、`pr` 或 `discussion`）。仓库会额外包含 `metadata.stars` 和 `metadata.language`；issue、pull request 和 discussion 会额外包含 `metadata.num_comments`，且其 `snippet` 以 `owner/repo · issue · open · N comments` 开头。像 "tanstack start hydration error" 这样的查询会返回匹配的 issue 和 discussion，而不只是仓库；如果只想搜索某一类，可以追加 GitHub 限定符，例如 `is:issue` 或 `stars:>1000`。使用 `time_range` 时，结果仅限于在该时间窗口内*创建*的仓库和讨论串。
- `hackernews` 结果（`/news`）链接到 Hacker News 讨论串，所提交的文章地址位于 `metadata.story_url`（没有文章 URL 的纯文本帖子会省略该字段），点赞数和评论数分别位于 `metadata.points` 和 `metadata.num_comments`。多词查询会匹配包含其中任意一个词的帖子，最匹配的排在前面。
- `reddit` 结果的排序方式是：标题或 subreddit 中提及查询词的帖子排在前面。

`/trending` 支持 `github` 和 `hackernews`，并且必须提供 `search_service`。

`grokipedia` 搜索的是 xAI 的百科全书 [Grokipedia](https://grokipedia.com)。
其条目为英文，因此请用英文编写查询；`language` 和 `time_range` 会被忽略。
结果链接到条目页面，并以条目的开头文本作为 `snippet`。Grokipedia 的内容由 xAI 依据
[xAI Community License](https://huggingface.co/xai-org/grok-2/blob/main/LICENSE)
提供；展示这些内容的产品应显示 "Powered by xAI"。

`imdb` 通过 Google 索引搜索 IMDb 域名下的页面。它返回网页标题、链接和摘要，
而不是结构化的 IMDb 目录元数据。请在 `query` 中同时保留电影或人物以及你需要的信息，
无需把它精简为仅有标题。索引覆盖并不完整，结果也不保证提供可复用的图片版权、
外部采访或档案下载。

## 读取结果原文，而不只是摘要

搜索结果包含一段简短的 `snippet`。当模型需要来源原文时，设置 `crawl_results` 来抓取排名靠前的结果，并填充其 `content` 字段：

```bash
curl -X POST https://api.search1api.com/search \
  -H "Authorization: Bearer $SEARCH1API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "postgres connection pooling best practices",
    "max_results": 10,
    "crawl_results": 3
  }'
```

该请求最多返回十条排好序的结果，并尝试为前三条补充全文。`crawl_results` 不能大于 `max_results`。

> **info:** 一次搜索消耗 1 积分，每成功抓取一个页面再加 1 积分。详见[积分与限制](https://s1.dev/zh/docs/essentials/credits-and-limits#search-with-full-page-content)。

## 按站点缩小范围

使用 `include_sites` 只搜索指定的域名，使用 `exclude_sites` 排除不需要的域名：

```json
{
  "query": "vector database benchmarks",
  "include_sites": ["github.com", "news.ycombinator.com"],
  "exclude_sites": ["pinterest.com"]
}
```

> **warn:** 范围很窄的 `include_sites` 列表搭配具体的查询词，可能会得到空的 `results` 数组。这是一次已完成并已计费的搜索，只是没有找到匹配项。请逐个移除约束条件，以扩大匹配范围。

## 按时间或语言缩小范围

`time_range` 可选值为 `day`、`week`、`month` 或 `year`。当时效性很重要时，请使用它，而不是在查询中添加“最新”之类的词。

当来源提供发布日期时，每条结果都会带有 `published_date`，模型可以据此判断结果的新旧程度，或在相互矛盾的来源之间做出取舍。该值采用 ISO 8601 格式：只知道日期时为 `YYYY-MM-DD`（网页搜索引擎通常如此），来源带有具体时间时则为 UTC 时间戳，例如 `2026-09-03T10:00:00Z`（`x`、`reddit`、`github`、`arxiv`、`youtube`、`bilibili`、`wechat`、设置了 `time_range` 的 `yandex`，以及 `/news` 的各个来源）。请将该字段视为可选：`duckduckgo`、`wikipedia`、`grokipedia` 和大多数中文网页引擎不返回日期；`yandex` 在未设置 `time_range` 时也会省略该字段；其他网页引擎只对部分页面提供日期。

`language` 接受语言代码，例如 `en`、`zh-CN` 或 `fr`。Search1API 不提供单独的国家或地区参数。

## 控制结果数量

`max_results` 默认为 5，可接受 1 到 50 之间的值。网关会把大于 50 的数值截断为 50。

## 原生 SERP 结果分页

`page` 是搜索引擎原生的分页，而不是在融合后结果列表中的偏移量。只有 `bing`、`bingcn`、`baidu` 和 `grokipedia` 支持该参数。其他引擎（包括 `yandex`）会忽略它。

```json
{
  "query": "vector database",
  "search_service": "bing",
  "page": 2
}
```

完整的请求 Schema、图片结果、批量请求体和响应字段，请参阅 [Search API 参考](https://s1.dev/zh/docs/basic/search)。