Showing
1 changed file
with
95 additions
and
0 deletions
搜索/yoho-search说明文档 .md
0 → 100644
1 | +# 1. 数据库模型 | ||
2 | +是同步商品那边的表,表结构不再详细介绍。 | ||
3 | +# 2. 代码结构 | ||
4 | +### yoho-search-core 搜索服务的公共核心模块,包括dal和core | ||
5 | +* bin maven操作脚本 | ||
6 | +* core | ||
7 | +* com.yoho.search.dal.service mybatis服务类 | ||
8 | + * index 存放索引相关类 | ||
9 | + * config 配置文件实体 | ||
10 | + * es es客户端 | ||
11 | + * service 索引相关接口与实现 | ||
12 | + * task 任务描述和任务分配 | ||
13 | + * utils 工具类 | ||
14 | +* resources esmapping json文件 | ||
15 | +* dal | ||
16 | +* com.yoho.search.dal 实体与mybatis mapper | ||
17 | +* resources mybati配置文件 | ||
18 | +### yoho-search-producer 生产者模块 | ||
19 | +* bin maven操作脚本 | ||
20 | +* deploy 部署脚本 | ||
21 | +* producer-web 业务逻辑代码 | ||
22 | +* com.yoho.search.canal 阿里mysql数据库binlog的增量订阅&消费组件 | ||
23 | + * mq 消息队列FastJson转换器 | ||
24 | +* resources spring canal rabbitmq 等配置文件 | ||
25 | +### yoho-search-consumer 消费者模块 | ||
26 | +* bin maven操作脚本 | ||
27 | +* deploy 部署脚本 | ||
28 | +* consumer-web 业务逻辑代码 | ||
29 | +* com.yoho.search.job 索引重建定时任务 | ||
30 | + * mq mq监听器 | ||
31 | + * service 索引请求相关controller | ||
32 | +* resources spring等配置文件 | ||
33 | +### yoho-search-service 提供搜索服务模块 | ||
34 | +* bin maven操作脚本 | ||
35 | +* deploy 部署脚本 | ||
36 | +* search-service 业务逻辑代码 | ||
37 | +* com.yoho.search.restapi 存放controller类 | ||
38 | + * service 存放service类 | ||
39 | + * vo 存放vo实体 | ||
40 | +* search-service -web web壳子,存放spring等配置文件 | ||
41 | +### yoho-search-adaptor 全球购和yoho商品适配 | ||
42 | +* bin maven操作脚本 | ||
43 | +* deploy 部署脚本 | ||
44 | +* adaptor-service 业务逻辑代码 | ||
45 | +* com.yoho.adaptor.model 存放实体类 | ||
46 | + * restapi 存放controller | ||
47 | + * service 存放service | ||
48 | + * util 存放工具类 | ||
49 | +* search-adaptor -web web壳子,存放spring等配置文件 | ||
50 | +# 3. 业务逻辑 | ||
51 | +### 总架构图 | ||
52 | +![总架构图](http://img10.static.yhbimg.com/yhb-img01/2016/08/30/16/017a1cd088f7c2ee486f710fd34e4e9192.jpg) | ||
53 | +### producer模块 | ||
54 | +生产者模块,分布式部署 | ||
55 | +![producer模块](http://img10.static.yhbimg.com/yhb-img01/2016/08/30/16/01cfc34b660740808444bd6c6569228236.jpg) | ||
56 | +### consumer模块 | ||
57 | +消费者模块 | ||
58 | +![consumer模块](http://img10.static.yhbimg.com/yhb-img01/2016/08/30/16/01cf364508c0b7569ffa757c3e767d2b22.jpg) | ||
59 | +### adaptor模块 | ||
60 | +全球购和yoho商品双向适配 | ||
61 | +![adaptor模块](http://img10.static.yhbimg.com/yhb-img01/2016/08/30/16/0173a69b3081732d607453716440e6db5b.jpg) | ||
62 | +### service模块 | ||
63 | +简单搜索代码逻辑: | ||
64 | +**1. 拼装SearchParam** | ||
65 | + | ||
66 | + - setFilter过滤参数 | ||
67 | + - constructFilter () | ||
68 | + - 使用ES包中的BoolFilterBuilder,常用的方法 must() mustNot() should() | ||
69 | + - 上面的方法中塞入FilterBuilders.termsFilter(field, values) | ||
70 | + - setQuery查询参数 | ||
71 | + - QueryBuilders.matchAllQuery() | ||
72 | + - 或--- >constructQuery () | ||
73 | + - 使用ES包中的MultiMatchQueryBuilder,常用的方法 operator() field() | ||
74 | + - setAggregationBuilders 聚合参数 | ||
75 | + - constractAggregations() | ||
76 | + - 使用List<AbstractAggregationBuilder> list | ||
77 | + - 使用AggregationBuilders 常用方法:terms() field() size() subAggregation() order() addRange() addHits addSort() | ||
78 | + - setSearchType 查询类型 | ||
79 | + | ||
80 | +**2. 设置查询条数** | ||
81 | +**3. 设置查询结果返回字段** | ||
82 | +**4. 设置排序字段** | ||
83 | +**5. 执行查询 doSearch(indexName, searchParam)** | ||
84 | +**6. 将searchResult转化为map返回--需要转化为需要的结构** | ||
85 | +**7. 返回jsonMap** | ||
86 | +开放RESTAPI接口提供搜索服务,包括搜索数据的封装和处理 | ||
87 | + | ||
88 | +### core模块 | ||
89 | +包括mybatis服务,调用es客户端逻辑,indexBuilder等底层逻辑 | ||
90 | +# 4.搜索相关文档地址 | ||
91 | +公司文档项目: | ||
92 | +[跳转](http://git.yoho.cn/tanling/api-interfaces/tree/master/%E6%90%9C%E7%B4%A2) | ||
93 | + | ||
94 | +ES权威指南: | ||
95 | +[跳转](http://es.xiaoleilu.com/) |
-
Please register or login to post a comment