返回首页

Search API

POST /api/search,返回排序后的网页结果。

最近更新: 2026-10-10

Search

POST /api/search

请求体

字段默认说明
query必填查询字符串
search_depthbasicbasic(1 积分)或 advanced(2 积分,会拉正文)
max_results51–20
topicgeneralgeneral 或 news
include_answerfalse若配置了 OpenAI/Anthropic,可返回简短回答
include_raw_contentfalsetrue / markdown / text
include_bodyfalsetrue 时返回面向查询的 body 正文上下文(见下)
body_top_k25body 保留的句子数,1–50(默认取 admin 配置)
include_faviconfalse每条结果的 favicon
include_domains只保留这些域名
exclude_domains排除这些域名

V1 不实现 fast、ultra-fast、图片字段和 finance 主题。

响应

{
  "query": "retrieval 最新论文",
  "results": [
    {
      "title": "...",
      "url": "https://...",
      "content": "...",
      "score": 0.95,
      "raw_content": null
    }
  ],
  "response_time": 0.42,
  "request_id": "...",
  "usage": { "credits": 1 }
}

错误体为 { "detail": { "error": "..." } },HTTP 状态码 401、400、429、432 或 500。

正文上下文(include_body)

传入 include_body: true 后,每个结果页会经由已配置的正文提取后端(推荐 Crawlee)抓取正文并切分成句子,由 Jev(StartLux-Decision)按 query 打分;在所有页面的句子中全局取 Top-K,按来源 URL 分组、组内保持原文顺序,拼成一段可直接放入 LLM 提示词的上下文。每条结果同时附带正文提取得到的 keywords / keyword_urls。

{
  "results": [
    {
      "title": "...",
      "url": "https://en.wikipedia.org/wiki/Web_scraping",
      "raw_content": null,
      "keywords": ["data scraping"],
      "keyword_urls": ["https://en.wikipedia.org/wiki/Data_scraping"]
    }
  ],
  "body": {
    "context": "[1] https://en.wikipedia.org/wiki/Web_scraping\n- Web scraping ... is data scraping used for extracting data from websites.\n- ...",
    "sentences": [{ "text": "...", "url": "https://...", "score": 0.65 }],
    "info": {
      "status": "applied",
      "topK": 25,
      "candidates": 661,
      "latencyMs": 17984
    }
  }
}

Jev 不可用或超时时,body.info.status 为 fallback,按阅读顺序在各页面间轮流截取句子(score 为 0),且该响应不写入缓存。5 个结果通常需要数十秒,主要耗时在正文抓取和句子打分。

关于 score

score 是单次请求内的相对位次分,不是通用的相关性指标。Exa 和 SearXNG 返回各自的原始分数;Brave、Serper 和 bb-browser 的结果使用按位次合成的分数(1 - index * 0.05)。请只用它对同一次响应内的结果排序,不要跨查询或跨提供商比较。

故障转移与缓存

当所选提供商出错时,请求会自动故障转移到下一个已配置的提供商(实际提供服务的提供商记录在请求日志中)。相同参数的搜索会在服务端缓存一小段时间(默认 10 分钟,可在 admin → Search 配置);命中缓存的响应仍按标准积分扣费。

浏览器搜索(BB Search)

推荐协作者使用内置的 bb-search:在仓库根目录运行 pnpm bb-search:up,再在 Admin → Search 选择 BB Search (built-in),填写 http://127.0.0.1:8896 与 deploy/bb-search/.env 中的 BB_SEARCH_API_KEY。支持引擎 google / bing / baidu / duckduckgo。仓库已提交 patched bb-browser bundle,无需再 clone 相邻的 bb-browser 源码。详见仓库内 deploy/bb-search/README.md。

高级模式仍可选择 bb-browser,直接连接本机 daemon(bb_browser_base_url,默认 http://127.0.0.1:19824)。两种协议的地址和密钥不能互换。

这些适配器支持 topic: "general"。请求 news 时会尝试下一个已配置的提供商;如果没有提供商能够处理,请求会返回错误。常见搜索引擎跳转链接会先解码或解包,再做域名过滤。解析失败时,无域名过滤的响应可能保留跳转链接;指定域名过滤时会丢弃未解析的跳转链接。结果数量取决于适配器和域名过滤条件。高级搜索和 /api/extract 继续使用已有的正文提取流程。