Skip to main content
GET
搜索开发者索引
搜索 GitHub issue、已合并的拉取请求、仓库 README 和精选文档站点。结果按相关性排序,并以 Markdown 格式提供匹配段落。 如需将数组筛选条件作为 JSON 传递,可在同一路径使用 POST 可重复指定的筛选条件在 GET 中支持以下任一形式:重复的查询参数,例如 types=issue&types=pull_request,或以逗号分隔的单个值,例如 types=issue,pull_request 索引分为两部分,这两个筛选条件分别限定各自部分的搜索范围:
  • repos 限定 GitHub 部分,即 issuepull_requestreadme 类型
  • sources 限定文档部分,即 doc 类型
  • 同时传入两者会合并这两部分,而非取交集,因此会返回任一部分中的匹配结果
由于每个筛选条件仅适用于其中一部分,无法匹配任何请求类型的筛选条件会被拒绝,而不会静默地返回空结果:
  • types 中不包含 GitHub 类型时,repos 会返回 400,并提示 repos cannot match any requested type; add github types or drop repos
  • types 中不包含 doc 时,sources 会返回 400,并提示 sources cannot match any requested type; add doc or drop sources
七个仓库筛选条件——language (如 Rust) 、topic (如 async) 、license (如 MIT) 、min_starsmax_starsarchivedfork——用于描述 GitHub 仓库。索引中的大多数文档页面来自已爬取的网站,并不对应任何仓库,因此无法通过仓库属性将这类页面纳入或排除。 因此,请求中使用任一此类筛选条件但未通过 sources 限定范围时,不会返回 doc 结果。响应中只包含 GitHub 证据:issuepull_requestreadme 类型。由于索引的文档部分根本不会执行,coverage 映射会将 doc 标记为 unavailable。这是预期设计,并非索引故障。 如需保留文档结果,请移除仓库筛选条件。你也可以通过 sources 限定文档部分的范围,然后查看 coverage,确认 doc 类型是否返回了答案。

sources 可接受的值

sources 不是固定的枚举类型。它接受文档来源 ID;每个 ID 都是长度不超过 512 个字符的非空字符串,且每个请求最多可传入 20 个。这些 ID 对应索引中的文档站点,集合会随时间不断扩展。 要确认某个 ID 是否有效,请传入该 ID,然后查看响应中新增的 sources 数组。该数组仅在你传入 sources 时出现,并会按请求中的原样返回每个 ID 及其是否已被索引:
indexed: true 表示该 source 存在已发布的 generation,因此可能会出现来自该 source 的文档证据。indexed: false 表示该 id 中没有任何内容可以匹配,这可区分不在索引中的 id 与仅仅未找到结果的 query。 repos 也会以相同方式返回,作为一个 repos Array,其中包含 indexed,并在 types 下提供按 Type 划分的明细:

解读 coverage

coverage 会报告每种结果类型的状态:okdegradedunavailableskipped。如果缺少预期的结果类型,请检查此字段:
  • skipped 表示你的 types 值未包含该类型
  • degradedunavailable 表示缺失是由索引或筛选条件造成的,而非查询。仓库筛选条件便是原因之一,如仓库筛选条件如何限定搜索范围所述
如需了解工作流概览,请参见 Developer Index 指南

授权

Authorization
string
header
必填

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

查询参数

query
string
必填

自然语言问题或搜索短语。

Minimum string length: 1
k
integer
默认值:10

要返回的排序结果数量。

必填范围: 1 <= x <= 100
types
enum<string>[]

要搜索的结果类型。默认值为全部四种类型。支持重复参数(types=issue&types=pull_request)或单个逗号分隔的值(types=issue,pull_request)。

可用选项:
doc,
issue,
pull_request,
readme
repos
string[]

用于限定索引中 GitHub 部分范围的仓库 slug,例如 firecrawl/firecrawl。仅适用于 issuepull_requestreadme 类型。与 sources 一同发送时,这两部分会合并而非取交集,因此会返回任一部分的匹配结果。当 types 中不包含 GitHub 类型时,返回 400,并附带 repos cannot match any requested type; add github types or drop repos

sources
string[]

用于限定文档部分范围的文档源 ID,最多 20 个。仅适用于 doc 类型。并非固定枚举:ID 对应索引中的文档站点,且该集合会随时间增长,因此请通过发送该 ID 并读取响应中的 sources 数组来确认其是否可解析。当 types 中不包含 doc 时,返回 400,并附带 sources cannot match any requested type; add doc or drop sources

Maximum array length: 20
Required string length: 1 - 512
skills
enum<string>

将其设为 only,以将搜索限定为已编入索引的代理技能文件。

可用选项:
only
passages
integer
默认值:1

每个结果要返回的匹配段落数。

必填范围: 1 <= x <= 5
language
string

仓库主要编程语言,例如 Rust。仅适用于 GitHub 结果;未指定 sources 范围时,发送该参数不会返回 doc 结果。请参见仓库筛选条件如何限定搜索范围

示例:

"Rust"

topic
string

仓库主题,例如 async。仅适用于 GitHub 结果;如果未指定 sources 范围,发送此参数不会返回 doc 结果。

示例:

"async"

license
string

仓库许可证,例如 MIT。仅适用于 GitHub 结果;如果未指定 sources 范围,发送此参数不会返回 doc 结果。

示例:

"MIT"

min_stars
integer

仓库星标数下限。仅适用于 GitHub 结果;如果未指定 sources 范围,发送此参数不会返回 doc 结果。

必填范围: x >= 0
max_stars
integer

仓库星标数上限。仅适用于 GitHub 结果;未指定 sources 范围时,传入此参数不会返回 doc 结果。

必填范围: x >= 0
archived
boolean

是否包含或排除已归档的仓库。仅适用于 GitHub 结果;未指定 sources 范围时,传入此参数不会返回 doc 结果。

fork
boolean

是否包含或排除派生仓库。仅适用于 GitHub 结果;未指定 sources 范围时,传入此参数不会返回 doc 结果。

响应

包含匹配段落的排序后开发者结果。

coverage
object

各结果类型的结果状态。当预期的结果类型缺失时,请检查此项:skipped 表示你的 types 值未请求该类型,而 degradedunavailable 表示缺失源于索引或筛选条件,而非查询。仓库筛选条件便是其中一个原因——请参见仓库筛选条件如何限定搜索范围

repos
object[]

仅在传入 repos 时出现。返回每个 slug 是否已编入索引,以及 types 下按类型划分的明细。

示例:
reranked
boolean

排序列表是否经过重新排序阶段。

results
object[]
sources
object[]

仅在发送了 sources 时出现。按请求原样返回每个 ID 及其是否已编入索引。indexed: true 表示该来源有已发布的生成版本,因此其中的文档证据可能会出现;indexed: false 表示该 ID 中的内容均无法匹配,这可区分不在索引中的 ID 与仅仅未找到任何结果的查询。

示例:
success
boolean