通搜百科

义项:百科网站

通搜百科是一个多语言在线百科网站,域名 baike.tongsou.com,2026 年 9 月上线。 它不自建抓取和抽取能力,而是把这些能力从域名库取用,自己专注在词条、 索引和界面这三件事上。站点支持 14 个语种,所有语种共用同一个义项编号。

目录
  1. 定位
  2. 与其他消费方的关系
  3. 词条地址
  4. 三条定死的规矩
  5. 不带编号的写法
  6. 词条分类
  7. 词条类型
  8. 学科主题
  9. 正文语法
  10. 双链
  11. 数学公式
  12. 图片
  13. 技术构成
  14. 界面
  15. 搜索引擎适配
  16. 参见

定位

通搜百科跟域名库的关系,跟快搜开放平台域名库的关系是一样的: 域名库是能力层,通搜百科是消费方。域名库不认识用户也不认识钱, 只负责抓取网页和抽取正文;通搜百科管自己的词条库、检索索引和用户界面。

这个分工带来一个硬约束:两个服务必须在同一台机器上。域名库的接口只接受 回环调用,请求头里带了 X-Forwarded-For 一类的字段就会被直接拒绝。 这不是配置问题,是设计如此。

能力层与消费方的边界一旦模糊,两边就会各自长出对方的功能。 宁可接口多一道,也不要让职责糊在一起。

与其他消费方的关系

目前域名库有两个消费方,将来会更多:

消费方 端口 取用的能力 自己管什么
快搜开放平台 8916 读取网页 用户、配额、计费
通搜百科 8940 读取网页、实体数据 词条、索引、界面

词条地址

词条的地址由三段组成:语种、词条名、义项编号。

/zh/通搜百科/1
/en/Tongsou-Wiki/1

义项编号是唯一真实的标识,词条名那一段只是给人看的。 14 个语种共用同一个编号,所以只要知道编号就能算出全部 14 个地址, 多语言声明不需要另外维护一张映射表。

三条定死的规矩

  1. 词条名不可变。 要改名等于删掉旧的、新建一条(拿新编号)。
  2. 已删除的编号不复用。 复用会让外面引用旧地址的链接指到无关的内容, 那比页面不存在更糟——是内容被掉包。
  3. 名字对不上时跳转到规范地址,而不是报错。用户照样看得到内容, 地址会被自动修正,搜索引擎也只会收录一个地址。

不带编号的写法

只写名字不写编号也能访问,会跳到该名字的默认义项:

/zh/通搜百科        →  /zh/通搜百科/1

这一条是为了让不知道编号的链接不落空——外部引用、手敲的地址、 从别处抄来的名字。用的是临时跳转而不是永久跳转,因为默认义项会变: 出现一个更重要的同名词条时,默认义项要能换过去。

词条分类

分类分成两个互不干扰的维度。

词条类型

回答「这是个什么东西」——电影作品、药品、火车站。 它决定正文模板和结构化数据类型,每条词条必须选一个。 现有 16 个一级分类、175 个二级分类。

分类表是照百度百科改的,但去了重。百度那 172 个二级里有 21 处跨一级重复:

  • 「生活」和「交通」有 10 个二级一字不差
  • 「艺术」和「娱乐」有 11 个二级一字不差

那不是部分重叠,是同一张表出现在两个一级下面。照抄的话, 一部电影落到哪个分类完全随机。

学科主题

回答「属于哪个领域」——物理学、语言学、冶金学。 它用于浏览和聚合,一条词条可以挂多个,也可以不挂。

一条讲相对论的词条,类型是「定理定律」,学科是「物理学」,两个都对。 把它们合进同一棵树就得二选一,所以分开。

正文语法

正文用 Markdown,另外支持几种双链写法。

双链

  • [[词条名]] 指向该词条的默认义项
  • [[全称|显示名]] 链接指向全称,页面上只显示别名
  • [[词条名#章节]] 直接跳到该词条的某个章节
  • ![[词条名#章节]] 把那个章节的内容嵌进来

指向还不存在的词条会渲染成红链。红链不是错误——它标出 「这个概念被引用了但还没人写」,是补词条的优先队列。

嵌入有两道防线:最大递归两层,以及路径成环检测。 两道缺一不可——层数上限管「嵌套太深」,成环检测管「互相引用」, 而且成环的诊断优先于层数,否则作者会往错误的方向找问题。

下面是一次嵌入,引用的是本词条的「定位」一节:

通搜百科跟域名库的关系,跟快搜开放平台域名库的关系是一样的: 域名库是能力层,通搜百科是消费方。域名库不认识用户也不认识钱, 只负责抓取网页和抽取正文;通搜百科管自己的词条库、检索索引和用户界面。

这个分工带来一个硬约束:两个服务必须在同一台机器上。域名库的接口只接受 回环调用,请求头里带了 X-Forwarded-For 一类的字段就会被直接拒绝。 这不是配置问题,是设计如此。

能力层与消费方的边界一旦模糊,两边就会各自长出对方的功能。 宁可接口多一道,也不要让职责糊在一起。

与其他消费方的关系

目前域名库有两个消费方,将来会更多:

消费方 端口 取用的能力 自己管什么
快搜开放平台 8916 读取网页 用户、配额、计费
通搜百科 8940 读取网页、实体数据 词条、索引、界面

数学公式

公式写在美元符号之间,行内的像 $E = mc^2$ 或者 $a_1 + b_2$, 渲染交给浏览器,服务端只负责把它原样带过去、不让 Markdown 的语法把它嚼碎 (不保护的话 $a_1 + b_2$ 里的下划线会被当成强调)。

块级公式独占一行:

$$\sum_{i=1}^{n} x_i = x_1 + x_2 + \cdots + x_n$$

图片

正文里的图和概述图都走 /media/ 这条路。真图还没有, 所以现在显示的是图位——一张标着文件名和尺寸的占位图。

架构示意

用图位不用碎图标是有理由的:碎图看不出「这里本来该有什么」, 编辑和读者都判断不了是图没传还是地址写错了。图位上写着文件名, 两种情况一眼分得开。

技术构成

后端是 Go,检索计划用 Manticore Search。数据分两处存:

  • TiKV 正文与历史版本。海量、大值、只按键取。
  • TiDB 元数据与二级索引。要多维查询:按分类列、按标签筛、查反向链接。

正文只在 TiKV 里有一份,TiDB 存指针,这样两边不会漂移。 同步到检索引擎用出站箱模式,不双写——双写一定会漂移, 一边成功一边失败时没有回滚点。

界面

界面复用了域名库后台的 AdminLTE 外观,但那是一次性的快照—— 复制完就分家,域名库以后改模板这边不会跟上。真正共用的是能力,不是代码。

已经付出过一次代价:noindex 这个标记跟着复制过来了。 在域名库那边是对的(内部工具不该被收录),在这边把整个前台从搜索引擎里 抹掉了,时间因子、多语言声明、结构化数据全被这一行抵消。

复制外观带过来的不只是样式,还有那边的假设。

搜索引擎适配

四家搜索引擎要的时间因子格式互相冲突,同一个时间点必须出两种字符串:

搜索引擎 载体 时区
百度 JSON-LD,指向资源平台,没有类型字段 不带
头条 专用的 meta 标记
谷歌 schema.org 官方要求带
必应 schema.org 加 OpenGraph

给百度带时区它不一定认,给谷歌不带时区它会按爬虫自己的时区解。

参见

词条评价
词条统计

浏览次数:175

阅读量:134 次 · 阅读完成量:26

最近更新:2026-09-13T14:27:33Z

编辑次数与历史版本要等版本管理落地。
完成率 = 阅读完成量 ÷ 阅读量,分母是阅读量不是浏览次数 —— 关了 JS 的、秒退的都在浏览次数里、不在阅读量里。 详细口径在后台的「数据统计」页。

本条目引用的词条
域名库 快搜开放平台 域名库 快搜开放平台 域名库 快搜开放平台 域名库 快搜开放平台 域名库 快搜 通搜 域名库 快搜开放平台
红色的还不存在。红链不是错误——它标出"这个概念被引用了但还没人写"。