|
|
# 1. 数据库模型
|
|
|
是同步商品那边的表,表结构不再详细介绍。
|
|
|
# 2. 代码结构
|
|
|
### yoho-search-core 搜索服务的公共核心模块,包括dal和core
|
|
|
* bin maven操作脚本
|
|
|
* core
|
|
|
* com.yoho.search.dal.service mybatis服务类
|
|
|
* index 存放索引相关类
|
|
|
* config 配置文件实体
|
|
|
* es es客户端
|
|
|
* service 索引相关接口与实现
|
|
|
* task 任务描述和任务分配
|
|
|
* utils 工具类
|
|
|
* resources esmapping json文件
|
|
|
* dal
|
|
|
* com.yoho.search.dal 实体与mybatis mapper
|
|
|
* resources mybati配置文件
|
|
|
### yoho-search-producer 生产者模块
|
|
|
* bin maven操作脚本
|
|
|
* deploy 部署脚本
|
|
|
* producer-web 业务逻辑代码
|
|
|
* com.yoho.search.canal 阿里mysql数据库binlog的增量订阅&消费组件
|
|
|
* mq 消息队列FastJson转换器
|
|
|
* resources spring canal rabbitmq 等配置文件
|
|
|
### yoho-search-consumer 消费者模块
|
|
|
* bin maven操作脚本
|
|
|
* deploy 部署脚本
|
|
|
* consumer-web 业务逻辑代码
|
|
|
* com.yoho.search.job 索引重建定时任务
|
|
|
* mq mq监听器
|
|
|
* service 索引请求相关controller
|
|
|
* resources spring等配置文件
|
|
|
### yoho-search-service 提供搜索服务模块
|
|
|
* bin maven操作脚本
|
|
|
* deploy 部署脚本
|
|
|
* search-service 业务逻辑代码
|
|
|
* com.yoho.search.restapi 存放controller类
|
|
|
* service 存放service类
|
|
|
* vo 存放vo实体
|
|
|
* search-service -web web壳子,存放spring等配置文件
|
|
|
### yoho-search-adaptor 全球购和yoho商品适配
|
|
|
* bin maven操作脚本
|
|
|
* deploy 部署脚本
|
|
|
* adaptor-service 业务逻辑代码
|
|
|
* com.yoho.adaptor.model 存放实体类
|
|
|
* restapi 存放controller
|
|
|
* service 存放service
|
|
|
* util 存放工具类
|
|
|
* search-adaptor -web web壳子,存放spring等配置文件
|
|
|
# 3. 业务逻辑
|
|
|
### 总架构图
|
|
|
![总架构图](http://img10.static.yhbimg.com/yhb-img01/2016/08/30/16/017a1cd088f7c2ee486f710fd34e4e9192.jpg)
|
|
|
### producer模块
|
|
|
生产者模块,分布式部署
|
|
|
![producer模块](http://img10.static.yhbimg.com/yhb-img01/2016/08/30/16/01cfc34b660740808444bd6c6569228236.jpg)
|
|
|
### consumer模块
|
|
|
消费者模块
|
|
|
![consumer模块](http://img10.static.yhbimg.com/yhb-img01/2016/08/30/16/01cf364508c0b7569ffa757c3e767d2b22.jpg)
|
|
|
### adaptor模块
|
|
|
全球购和yoho商品双向适配
|
|
|
![adaptor模块](http://img10.static.yhbimg.com/yhb-img01/2016/08/30/16/0173a69b3081732d607453716440e6db5b.jpg)
|
|
|
### service模块
|
|
|
简单搜索代码逻辑:
|
|
|
**1. 拼装SearchParam**
|
|
|
|
|
|
- setFilter过滤参数
|
|
|
- constructFilter ()
|
|
|
- 使用ES包中的BoolFilterBuilder,常用的方法 must() mustNot() should()
|
|
|
- 上面的方法中塞入FilterBuilders.termsFilter(field, values)
|
|
|
- setQuery查询参数
|
|
|
- QueryBuilders.matchAllQuery()
|
|
|
- 或--- >constructQuery ()
|
|
|
- 使用ES包中的MultiMatchQueryBuilder,常用的方法 operator() field()
|
|
|
- setAggregationBuilders 聚合参数
|
|
|
- constractAggregations()
|
|
|
- 使用List<AbstractAggregationBuilder> list
|
|
|
- 使用AggregationBuilders 常用方法:terms() field() size() subAggregation() order() addRange() addHits addSort()
|
|
|
- setSearchType 查询类型
|
|
|
|
|
|
**2. 设置查询条数**
|
|
|
**3. 设置查询结果返回字段**
|
|
|
**4. 设置排序字段**
|
|
|
**5. 执行查询 doSearch(indexName, searchParam)**
|
|
|
**6. 将searchResult转化为map返回--需要转化为需要的结构**
|
|
|
**7. 返回jsonMap**
|
|
|
开放RESTAPI接口提供搜索服务,包括搜索数据的封装和处理
|
|
|
|
|
|
### core模块
|
|
|
包括mybatis服务,调用es客户端逻辑,indexBuilder等底层逻辑
|
|
|
# 4.搜索相关文档地址
|
|
|
公司文档项目:
|
|
|
[跳转](http://git.yoho.cn/tanling/api-interfaces/tree/master/%E6%90%9C%E7%B4%A2)
|
|
|
|
|
|
ES权威指南:
|
|
|
[跳转](http://es.xiaoleilu.com/) |
|
|
\ No newline at end of file |
...
|
...
|
|