SearXNG
把 SearXNG 实例 URL 指向 Search1API,无需自行运行实例,即可继续使用 SearXNG 的 JSON 搜索 API、引擎选择和分类。
Search1API 兼容 SearXNG 的 JSON 搜索 API。将你的 SearXNG 实例地址替换为:
https://api.search1api.com/compat/searxng/YOUR_API_KEY客户端可以在这个地址后追加 /search,也可以直接调用它,两种方式都可用。支持带查询参数的 GET,以及带表单请求体的 POST。
URL 中包含你的 API 密钥
SearXNG 客户端无法发送认证请求头,因此密钥是 URL 的一部分。请把整个 URL 当作机密信息对待。Search1API 会在自己的日志中隐去该密钥。建议在仪表盘中为这个 URL 单独创建一个密钥,以便单独吊销。
迁移概览和配置变更请参见从 SearXNG 迁移。
配置客户端
在 Admin Settings → Web Search 中选择 searxng 并设置 Searxng Query URL,或者设置环境变量:
SEARXNG_QUERY_URL="https://api.search1api.com/compat/searxng/YOUR_API_KEY/search?q=<query>"或者直接调用:
curl "https://api.search1api.com/compat/searxng/YOUR_API_KEY/search?q=hono+workers&format=json"参数
| 参数 | 行为 |
|---|---|
q | 查询词。与 SearXNG 一样,开头的 !go 式引擎 bang、!news 式分类 bang 和 :de 式语言前缀都会生效。 |
format | json 或省略。其他格式返回 400。 |
engines | 以逗号分隔的 SearXNG 引擎名称,见下表。 |
categories | 未提供 engines 时使用:general、news、images、videos(YouTube)、science(arXiv)和 it(GitHub)。其他分类按网页搜索处理。 |
language | en、en-US 等代码按其主语言处理。all 和 auto 表示不过滤。 |
time_range | day、week、month 或 year。 |
pageno | 结果页码,每个引擎每页 10 条结果。参见结果分页。 |
其他参数,如 safesearch、theme 和 image_proxy,会被忽略。
引擎
| SearXNG 引擎 | Bang | 搜索范围 |
|---|---|---|
google, bing, duckduckgo, yahoo, yandex, baidu, 360search, quark | !go, !bi, !ddg, !yh, !yd, !bd, !360so, !qk | 同一引擎 |
wikipedia, grokipedia | !wp, !gp | 同一来源 |
youtube, bilibili, imdb | !yt, !bil, !imdb | 同一来源 |
github, arxiv, reddit | !gh, !arx | 同一来源 |
sogou wechat | !sogouw | 微信文章 |
google news, bing news, yahoo news, duckduckgo news, hackernews, reuters | !gon, !bin, !yhn, !ddn, !hn, !reu | 同一来源的新闻 |
google images, bing images, duckduckgo images | !goi, !bii, !ddi | 同一引擎的图片 |
如果 engines 中列出了不在此表中的名称,它们会出现在 unresponsive_engines 中,原因为 engine not supported。如果列出的引擎都不受支持,请求会回退到 categories,或回退为网页搜索。
积分
每搜索一个引擎消耗 1 积分,与一次原生搜索的价格相同。未提供 engines 的请求会为每个分类搜索一个默认引擎,每个分类消耗 1 积分。无法提供所请求页码的引擎会被跳过,且不计费。
响应
响应采用 SearXNG 的 JSON 结构:query、number_of_results、results、answers、corrections、infoboxes、suggestions 和 unresponsive_engines。
- 来自多个引擎的结果会被合并。被多个引擎找到的 URL 只出现一次,
engines中列出所有相关引擎,positions中列出其排名。 score根据这些排名按 SearXNG 的公式计算,因此按分数排序的客户端可以继续正常工作。- 每条结果包含
url、title、content、engine、engines、positions、score、category、template、parsed_url和publishedDate。 - 图片结果还包含
img_src和thumbnail_src。它们的url是图片 URL,而不是图片所在页面的 URL。 number_of_results始终为0,answers、corrections、infoboxes和suggestions始终为空。
错误
错误返回 { "error": "message" } 及相应状态码。当所有选中的引擎都失败时,请求返回最相关的错误,例如密钥无效时返回 401,触发速率限制时返回 429。当只有部分引擎失败时,请求仍会成功,并在 unresponsive_engines 中列出失败的引擎。