CRS 内部控制台

网页库crs.tongsou.com

SeaweedFS,一页一对象。入口 A 与入口 B 写入同一库,入口 C 不入库。

库存

SeaweedFS 网页库 · 按压缩后约 80KB/对象估算

object count对象总数
8,412,663
storage存储占用
641 GB
24h new24h 新增对象
340,492
24h storage24h 新增存储
27 GB

⚠️ 不用 WARC 做存储格式。append-only 大 blob,删一条要重写整个文件。一页一对象,删除就是删一个 key,SeaweedFS 的小文件优化正好发挥。WARC 只作导出格式。

⚠️ 这是页面级下线通道的基础。目标内容大量是正规站点下的 UGC,问题出在单页而非整域,域名级封禁粒度太粗。后加此能力比一开始就留贵十倍。

对象列表

近 24 小时入库对象抽样 · 完整字段见对象详情页

object_id对象标识 · SeaweedFS fid url请求地址 http_statusHTTP 状态 lang语种 text_length渲染后文本长度 raw_text_length渲染前文本长度 render_duration_ms渲染耗时(毫秒) render_path渲染路径 fetched_at抓取时间 actions操作
3,01637037d6 https://news.example.tw/post/48213 200zh-Hant3,456180 812obscura2026-08-15T07:47:52Z 详情 · 域名
5,0a92f1cc44 https://docs.example.cn/guide/5 200zh-Hans5,120210 640obscura2026-08-15T07:47:49Z 详情 · 域名
7,02be55d139 https://shop.example.jp/item/9910 200ja096 1,940obscura2026-08-15T07:47:31Z 详情 · 域名
4,0c11ab7e02 https://corp.example.hk/news/1120 200zh-Hant2,8902,704 505obscura2026-08-15T07:46:58Z 详情 · 域名
6,03fd28e94b https://blog.example.com/p/771 200null1,204144 1,118obscura2026-08-15T07:46:12Z 详情 · 域名

⚠️ 第三行 text_length = 0fetch_status = empty:渲染成功但正文为空,对象已落库,下游扫描时应跳过,否则会消费到空壳。它不是 failed

⚠️ 第五行 langnull:调用方给不出语种,留空不猜lang_source = unknown。下游按 lang_source 判断可信度。

⚠️ 第四行 raw_text_lengthtext_length 接近,是典型的 SSR 形态。本页只呈现两个长度,不算 text_ratio、不下判定 —— ratio 的定义、方向与 verdict 全部归采样器。

检索能力的边界

CONVENTION.md 第二条 · TiKV key 恒为三段 {service}:{table_name}:{primary_key}

query检索方式 status是否可用 why原因
按 object_id可用GET /v1/objects/{object_id},契约已有
按 url_hash可用downloader:fetch_result:{url_hash} 的主键,一次点查
按 domain需新增索引表downloader:fetch_result 只按 url_hash 主键,域名维度需要一张 _index 表(value 恒为 nil,与主表同事务)。属下载器内部表,不动契约
按 content_hash / simhash需新增索引表同上。去重与相似判断在下游,本服务只负责把两个哈希算好存下
全文检索不属本系统正文抽取与倒排索引归下游,不在六份文档范围内

⚠️ url_hash = 全局规范化后 URL 的 SHA-256 取前 16 字节,小写 hex,32 字符。「全局规范化」只指 DEV-scheduler.md §七 那五条,不含任何按域名覆盖的规则 —— 域名级规则只影响是否重复抓取,不改变 URL 身份。算法或长度变更等同于全库重建。

下线与删除

页面级下线通道 · 一页一对象带来的能力

granularity粒度 operation操作 note说明
单页删一个 object_id主要通道。问题多出在单页而非整域,域名级封禁粒度太粗
URL 状态删 downloader:fetch_result:{url_hash}与对象删除配套,否则状态表会指向已不存在的 object_id
整域不在本服务域名的入队与丢弃由调度器按 verdict 决定,下载器不判定域名

⚠️ 删除对象不等于让它不再被抓。URL 队列与域名规则属于另外两个服务,本系统不拥有、不写入。只删对象,下一轮 lease 还会把它抓回来。