api.stackexchange.com与data.stackexchange.com数据不一致问题咨询
Stack Overflow API与Data Explorer数据不一致的原因
以下是导致两者数据差异的核心因素:
API统计的是用户可见的有效问题
调用/questions接口并使用filter: "total"时,返回的总数只包含普通用户可公开访问的问题,自动排除了以下内容:- 被彻底删除的问题
- 被社区标记为垃圾、低质量且隐藏的问题
- 被锁定或处于审核状态的问题
- 跨站点迁移后原站点保留的迁移标记帖
PostsWithDeleted表包含所有历史帖子
这个表存储了Stack Overflow所有创建过的帖子(包括已删除的),不管是否对普通用户可见。其中包含的已删除帖子又分为两种:- 管理员手动删除的帖子
- 社区删除但未彻底清理的帖子(如被投票删除的低质量帖)
这些内容都不会被API统计,所以PostsWithDeleted的计数(3670)会比API结果(3286)多。
Posts表仅保留未被删除的活跃帖子,但存在额外过滤
Posts表只存储未被删除的帖子,但它还会排除一些虽然未删除但不符合公开展示规则的内容,比如:- 被标记为需要修改的待审核帖子
- 因版权或违规被隐藏但未删除的帖子
这就是为什么Posts表的计数(1993)远低于API结果的原因。
权限与数据范围的逻辑差异
API的统计逻辑和Data Explorer的数据库表设计目标不同:- API面向普通用户,返回的是实际能浏览到的内容
- Data Explorer面向数据分析,保留了完整的历史数据(包括内部标记的内容)
内容的提问来源于stack exchange,提问作者FluidMechanics Potential Flows
相关产品推荐
相关产品推荐

