java商城2

 

 boolquerybuillder

看上面的流程图就能很明显的看到,filterquery还是有很大的区别的。

比如,query的时候,会先比较查询条件,然后计算分值,最后返回文档结果;

filter则是先判断是否满足查询条件,如果不满足,会缓存查询过程(记录该文档不满足结果);满足的话,就直接缓存结果。

综上所述,filter快在两个方面:

  • 1 对结果进行缓存
  • 2 避免计算分值

 

 

【4】根据嵌套类型查询 (filter 与 must 是属于同一个级别的查询方式,都可以作为 query->bool 的属性)

【3】根据嵌套类型查询 (filter 与 must 是属于同一个级别的查询方式,都可以作为 query->bool 的属性)
3.1、filter: 不计算评分, 查询效率高;有缓存; (推荐)
+ term: 精确匹配;
+ match: 模糊匹配, 倒排索引;
3.2、must: 要计算评分,查询效率低;无缓存;
+term: 精确匹配 , 要评分;
+match:模糊匹配, 要评分;

 

 

 

 

BoolqueryBuilder        QueryBuilders.rangequery   

 

 

 

 

 

 

 

 途中会使用canal监听MySQL的binlog日志从而实现mysql的数据实时同步到rabbitmq中

canal   主备同步的功能

使用Canal实现MySQL的数据实时同步

   

canal的工作原理:

canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
mysql master收到dump请求,开始推送binary log给slave(也就是canal)
canal解析binary log对象(原始为byte流)
使用canal解析binlog日志,数据落地到Kafka

 

 

先在mysql开启主备的功能     

 

 

 

 监听外面环境的地址

 

 监听的表

 

 

rabbitmq

 

 

 

posted @ 2021-10-16 20:17  悬崖听风098  阅读(35)  评论(0编辑  收藏  举报