Elasticsearch实战之(商品搜索API实现)
1、案例介绍
某医药电商H5商城基于Elasticsearch实现商品搜索
2、案例分析
2.1、数据来源
- 商品库 - 平台运营维护
- 商品库 - 供应商维护
2.2、数据同步
2.2.1、同步双写
写入 MySQL,直接也同步往 ES 里写一份数据
2.2.2、异步双写
借助MQ,商品上架发MQ消息,搜索服务订阅MQ消费同步到ES
2.2.3、定时任务
数据表建一个时间戳字段,商品每次更新完都更新这个字段,定时任务按照一定的时间周期扫描数据
2.2.4、基于Binlog实时同步
利用MySQL的binlog来进行同步
1)读取mysql的binlog日志,获取指定表的日志信息;
2) 将读取的信息转为MQ;
3) 编写一个MQ消费程序;
4) 不断消费MQ,每消费完一条消息,将消息写入到ES中。
使用canal监听binlog同步数据到es(目前比较流行)
3、案例实现
3.1、定义搜索接口
3.2、定义搜索接口实现类
3.3、定义搜索接口控制器类
3.4、Postman操作搜索API
4、源码下载
https://gitee.com/micai-code/es7.8.0-spring-data-elasticsearch.git