恢复规格 · 2019
金融研究平台技术规格
从金融搜索主服务、数据采集管线和小程序代码恢复出的检索、语义扩展、图谱与研究工作台规格。
1. 文档定位
本规格根据三个仓库的默认分支和提交历史逆向恢复,不是原始设计文档。它描述代码实际呈现的系统边界,并将已实现能力、外部依赖与推测部分分开。
系统面向研究人员,将公告、研报、新闻、司法资料、专利、企业和证券元数据组织为统一检索入口,并支持筛选、语义扩展、关系探索、收藏和移动阅读。
2. 系统上下文
- 上游:公告及新闻等来源采集器、PDF 下载与解析、公司和证券基础数据。
- 核心:搜索 API、筛选与聚合、自然语言处理适配、知识图谱适配、用户资料与研究内容。
- 客户端:Web 前后台、接口文档页和 Wepy 小程序。
- 下游:个人收藏、文档、报告预览与分享。
3. 逻辑架构
3.1 数据采集与加工
finance/cninfo 采用 Scrapy 风格结构,包含 Spider、Middleware、Pipeline、Scheduler 与运行脚本。不同适配器分别负责公告、披露、新闻、专利、工商、行情、政策、社交资料和 PDF;采集结果经管线清洗后进入业务存储与全文索引。
采集层还包含重抓、扫描、重建索引和消息收发程序,说明系统预期支持增量运行与失败补偿,而不是只执行一次全量导入。
3.2 核心应用服务
finance/sz 基于 Yii2 Advanced Template,分为 api、backend、frontend、common 与 console。主要逻辑集中在版本化 API 模块:
- Query、Filter、Category 与 Tab 负责搜索、来源分类、时间和条件筛选;
- PDF、Image 与 Disclosure 负责文档、预览和披露资料;
- Graph 与 Court 连接关系数据和司法资料;
- NLU 与工具类封装分词、语义扩展和外部语言能力;
- Report、StockMeta 与 Manager 组织研报、证券及管理信息;
- User 与移动端控制器承接身份、收藏和小程序访问。
服务同时集成 Elasticsearch、MongoDB、Neo4j 和 SSDB 客户端。关系型数据库保存用户与稳定业务对象,全文引擎负责检索和聚合,图数据库负责企业与产业关系,文档或键值存储承接原文、缓存及中间状态。
3.3 移动客户端
Wepy 小程序包含搜索首页、结果列表、内容详情、分享图、登录、收藏和个人文档。客户端通过集中 API 模块访问后端,页面级组件维护筛选与阅读状态。
4. 核心数据流
- 调度器选择来源和时间窗口并创建采集任务。
- Spider 获取列表、详情或文件,Pipeline 保存来源标识与原始元数据。
- PDF 和文本处理程序提取可索引内容,实体与证券信息用于补充字段。
- 索引任务把文档及筛选字段写入全文引擎,关系数据写入图存储。
- 查询 API 执行关键词处理、筛选、排序、高亮和聚合。
- Web 或小程序展示结果,并把收藏、笔记或报告行为写回用户域。
5. 接口能力
从控制器动作可以确认以下接口族:全文查询与扩展查询、分类与板块、条件和时间聚合、文档段落与 HTML 预览、PDF 与图片、证券元数据、产业树、专利与工商卡片、图谱关系、用户词典、报告及移动端内容。
接口采用版本化模块并保留 Swagger 定义,这是代码中的一个亮点。当前定义不足以确认所有响应结构长期一致;重建时应为每个接口补充请求模型、响应模型、错误码、分页和排序契约。
6. 部署与运行
仓库包含 Docker、Compose、Nginx、环境初始化和 Yii 控制台入口,说明系统可以按 Web、API、后台与离线任务拆分进程。采集仓库有独立调度与生产脚本,适合与在线查询服务分开扩缩容。
重建时建议划分为四个部署单元:采集工作进程、文档加工与索引进程、查询 API、Web 与移动端静态资源。存储不应由应用代码隐式创建,索引映射与数据库迁移必须版本化。
7. 技术亮点
- 将多来源采集、文档解析、索引和在线查询拆成不同仓库与运行角色。
- API 按业务域拆分,并保留接口定义与功能测试骨架。
- 全文、关系、结构化与缓存存储按访问模式分工。
- 搜索不仅返回文件,还提供段落、高亮、筛选、语义扩展和企业关系入口。
- 同一能力延伸到小程序,保留搜索、收藏和个人文档的工作流。
8. 已知缺口与风险
- 主仓包含大量 vendored 依赖和生成资源,真实自研边界容易被文件量掩盖。
- 多种存储之间缺少可见的一致性协议,实体更名和索引更新可能产生错配。
- 采集配置、在线配置和代码历史曾混放敏感连接信息,必须重新轮换并外置。
- 测试数量相对业务控制器较少,搜索排序与跨存储查询缺少固定回归语料。
- NLP 和图谱能力由适配器调用,但相关服务源码不完整,不能假定可直接重建。
9. 重建验收标准
- 给定固定语料与索引版本,同一查询能够重现排序、筛选和聚合结果。
- 每条结果可追溯到来源、采集时间、原始文档和解析版本。
- PDF 解析失败、索引失败和来源失败可以独立重试,不产生重复业务对象。
- 公司更名、同名公司和证券代码变化具有明确的实体解析规则。
- Web 与小程序共享同一接口契约,收藏和个人文档具备权限隔离。
- 所有运行配置由部署环境提供,仓库与日志不保存有效身份凭据。
10. 证据边界
主服务有 741 次提交、采集仓库有 858 次提交、小程序有 163 次提交。代码足以恢复主要模块和数据流,但当前快照不包含全部 NLP 服务、生产数据模型、索引模板和运行监控。本文不保证历史依赖仍可直接安装,也不把控制器存在等同于对应接口已经稳定上线。