美文网首页IT@程序员猿媛【Camel】...【学】@Jav...
【轻知识】对ElasticSearch的简单使用

【轻知识】对ElasticSearch的简单使用

作者: 言十年 | 来源:发表于2019-04-19 22:30 被阅读2次

对项目的回顾。

背景

image.png

有一个方便运营选品的后台。后台的商品都是消息流消费调用选品后台的接口存了一份商品。后来,商品数量超过了1000万。再按照上面表单查询就根本不可能了。主要是有模糊查询就慢死。

那么就上搜索引擎吧?Solr与ElasticSearch,看了看相关对比文章。就用ElasticSearch吧。

思考的问题点

1.mysql的结构怎么和ES中的结构对应起来。如:choose库中的goods表中的商品在es中怎么表示?

上面的表单是连表查的。所以灌入数据也是连表后的结果。保证es存的跟不用es从数据库查的字段保持一致。

2.es中的数据是怎么存储的?存储到哪个位置,可否自定义?怎么备份数据?

es有副本。实际上我们就是单机。

3.mysql中的CURD在es中怎么体现?

手册中有了

4.如果es服务挂掉,怎么让请求去访问mysql,或者其它的容错方案?

如果es走不通。就切mysql。实际上这步没有具体做。es用supervisor跑。

5.怎么把mysql中的历史数据批量导入到es中,导入后怎么校验数据的准确性?

6.如果新增数据或者修改数据怎么保证es和mysql的双写,即数据一致性问题?

先写库,后写ES
7.es怎么和laravel框架结合?

composer 安装 https://www.elastic.co/guide/cn/elasticsearch/php/current/_installation_2.html

8.使用es后怎么保证和其它业务服务的隔离,防止es挂掉之后会影响到别的访问业务?

实际上,只有这个表单用了。

OK,开干

1.composer安装

2.封装一个单例。把curd方法写好。

3.es的index名就跟库名,type就跟那个商品表名一样。对应的商品操作写完。

4.脚本跑数据。灌入。

5.消息流消费的接口中。先入库后,入es。

数据的同步就是,在接口中,同步做了入库跟如es。
没有用Canal。技术用不用视情况而定。

kibana

对了kibana是个好东西。也装了。

用console查数据。另,如果你想看商品添加用图形观察什么时间新增了多少数据,也可以自己弄visualize。

image.png

参考资料:

相关文章

网友评论

    本文标题:【轻知识】对ElasticSearch的简单使用

    本文链接:https://www.haomeiwen.com/subject/mcofgqtx.html