优化搜索结果
选择搜索来源、获取完整页面文本,并按站点、时间和语言缩小 Search1API 的搜索结果范围。
先使用默认的搜索行为,只有当结果表明确实需要时,再添加约束条件。
从默认来源开始
如果省略 search_service,Search1API 会搜索 Google,效果与发送 "search_service": "google" 相同。需要通用网页覆盖时,保持这个默认值即可。
当来源本身就是请求的一部分时,设置 search_service:
{ "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。
其条目为英文,因此请用英文编写查询;language 和 time_range 会被忽略。
结果链接到条目页面,并以条目的开头文本作为 snippet。Grokipedia 的内容由 xAI 依据
xAI Community License
提供;展示这些内容的产品应显示 "Powered by xAI"。
imdb 通过 Google 索引搜索 IMDb 域名下的页面。它返回网页标题、链接和摘要,
而不是结构化的 IMDb 目录元数据。请在 query 中同时保留电影或人物以及你需要的信息,
无需把它精简为仅有标题。索引覆盖并不完整,结果也不保证提供可复用的图片版权、
外部采访或档案下载。
读取结果原文,而不只是摘要
搜索结果包含一段简短的 snippet。当模型需要来源原文时,设置 crawl_results 来抓取排名靠前的结果,并填充其 content 字段:
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。
一次搜索消耗 1 积分,每成功抓取一个页面再加 1 积分。详见积分与限制。
按站点缩小范围
使用 include_sites 只搜索指定的域名,使用 exclude_sites 排除不需要的域名:
{
"query": "vector database benchmarks",
"include_sites": ["github.com", "news.ycombinator.com"],
"exclude_sites": ["pinterest.com"]
}范围很窄的 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)会忽略它。
{
"query": "vector database",
"search_service": "bing",
"page": 2
}完整的请求 Schema、图片结果、批量请求体和响应字段,请参阅 Search API 参考。