error 消息的 JSON 响应体,绝不是零匹配的成功搜索。HTTP 200 且 documents 为空数组表示搜索已执行但没有结果;其他状态码都会说明出了什么问题。
Business Search 会返回哪些状态码
请在
429 响应的 Retry-After 标头指定的等待时间之后重试。请对 500、502 和 504 使用有上限的退避重试。切勿重试 400、401、403、404 或 501,因为同样的请求每次都会失败。如果同一请求反复返回带有 error_code backend_search_failed 的 500,问题出在请求本身,请修改请求而不是重试。
请求为什么被拒绝
Business Search 以 HTTP 400 拒绝无效请求体,并在响应中说明被拒绝的内容。选择未知输出字段时会返回:industry、current_title 等文本字段只接受 text 运算符。参见 Business Search 查询语法。
部分拒绝响应还会包含 error_code,即机器可读的错误类别,例如 invalid_query 或 backend_search_failed。存在 error_code 时可据此分支处理,不存在时请回退到 HTTP 状态码,因为通用错误不包含该字段。
校验失败时请修正请求。速率限制检查在校验之后执行,因此被拒绝的请求不会消耗速率限制配额,但重复发送无效请求体同样无法成功。
速率限制是多少
默认限制为每分钟 60 次请求,按账户、类目和模式分别计算。因此公司搜索与人物搜索各有独立配额,每个类目下的 Ludicrous、Instant 和 Smart 也各有独立配额。 超过限制时,Business Search 会返回 HTTP 429,并在Retry-After 标头中给出需要等待的秒数。请等待该时长后再重试。被限流的请求不会执行搜索,也不会计费。
各类故障应如何处理
请在自己的日志中区分这四种情况。把它们合并成单一的“搜索失败”分支,会掩盖查询错误与服务故障之间的区别。
联系 Bright Data 支持时应提供什么
请提供端点、HTTP 状态码、请求时间、错误消息,以及返回的req_id。必要时可附上脱敏后的请求体。
常见问题
返回 200 是否表示查询被正确理解
不是。200 表示搜索已执行。在 Instant 和 Smart 模式下,自然语言意图和结果相关性不会因为 HTTP 请求成功而得到保证,因此使用记录前请先审阅结果。HTTP 400 应该重试吗
不应该。HTTP 400 表示请求本身无效,同样的请求体每次都会失败。只对 HTTP 500、502 和 504 进行有上限的退避重试。被拒绝的请求会计入速率限制吗
不会。Business Search 先校验请求,再检查速率限制,因此格式错误的查询不会消耗配额。请修正请求而不是重试,因为无效请求体无论发送多少次都不会成功。如何区分字段缺失与空结果
返回记录中缺少某个字段,表示数据源对该记录没有存储值。documents 数组为空,表示没有记录匹配条件。前者按记录处理,后者按请求处理。