站内搜索
站内搜索是指通过索引各类实体的详细信息,实现在系统中一处可搜索当前工作空间中的相关信息。
可搜索的实体
以下实体通过索引后可以被搜索:
Project
索引项目
- 项目名称
- 项目描述
关联主键
- 项目ID
Repository
索引项目
- 仓库名称
- 仓库描述
- 仓库标签
- 仓库源语言
关联主键
- 仓库ID
订单
索引项目
- 订单供应商名称
- 订单对应仓库名称
关联主键
- 订单ID
用户
索引项目
- 用户昵称
- 用户邮箱
关联主键
- 用户ID
Elasticsearch 索引方案
Canal + MySQL Binlog 数据同步方案
架构概述
使用Canal捕获MySQL Binlog变更,将数据实时同步到Elasticsearch,保证搜索索引与数据库的一致性。
+-------------+ +------------+ +----------------+ +------------------+
| | | | | | | |
| MySQL +---->+ Canal +---->+ Kafka/MQ +---->+ Elasticsearch |
| | | | | | | |
+-------------+ +------------+ +----------------+ +------------------+
Binlog 解析Binlog 消息队列缓冲层 索引存储与搜索