搜索平台实践

一、背景

此搜索平台主要解决以下场景问题:

  1. 大数据下的模糊检索、范围查询、聚合分析,mysql实现比较吃力。
  2. 半结构化数据的存取(比如日志),mysql无法做到nosql动态扩展字段。
  3. 数仓、数分统计的hive表,通过搜索平台高效快速接入并同步数据,对外提供服务。(搜索平台也是数据中台的在线查询服务)
  4. 推荐系统的推荐池存取,k2i(基于关键字召回item)引擎实现等。
  5. app搜索(文本召回,分词器定制等)。

二、实现

admin UI设计:

  1. 提供集群节点上线、下线,以及基础的监控、报警功能;在线集群、离线集群区分【集群管理】。
  2. 提供简洁、高效的接入页面,以及数据表查询和导出功能【业务接入、查询管理】。
  3. 提供索引节点调度管理页面,索引日志查看功能【索引节点管理】。

索引节点设计:

  1. 对于离线结构化的数据源(比如hive,mysql),接入页面可直接选择库、表、字段,审核通过即可同步数据;hive同步数据采用hive-solr组件(基于开源二次开发);mysql同步数据先用sqoop转成hive外表,再hive-solr。(主要借助大数据集群优势快速索引,也可自写索引组件)
  2. binlog实时数据源采用canal作为CDC方案。
  3. kafka实时数据源目前只支持zookeeper配置,后续可支持broker配置;借助kafka保证数据写入顺序(key相同写同一个partition)
  4. rpc、http索引支持,主要满足不同业务服务端需要。

统一查询服务:

  1. rpc服务(基于dubbo)
  2. http服务

v2-1c4eb517b0e12dd5d472a75af9f80f79_b.jpg
搜索平台架构图

注:基于历史原因,我们使用solr作为底层引擎,其实elasticsearch在吞吐、延时、成本、sql支持等方面更有优势,后续将重构成基于elasticsearch实现。

三、页面原型

hive接入页面

v2-e74d2d0768c353092dc22a72e5671ecb_b.jpg
第一步

v2-e17387c027676167eb02b8660b60330b_b.jpg
第二步

v2-d25bf622778b78b8a119c9c8e89b451a_b.jpg
第三步

业务接入列表页面

v2-86b45cf169b817c77bc3cdc4fb037a53_b.jpg

业务查询页面

v2-237187160dcade63fb8d7b58bc840f27_b.jpg

索引节点管理页面

v2-8ef256050ff28a2b294addc1a237b58e_b.png

集群节点管理页面

v2-f5694366da752af7998cdc601f60a3cb_b.jpg

统一查询接口

v2-cce167a764ca126298786e39bab152d3_b.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值