记一次现有项目中的solr切换es方案及说明

作者: admin 分类: ELK 发布时间: 2019-05-02 23:09  阅读: 515 views

切换原因:公司为了监控日志,部署了一套ELK环境。整体使用下来还是不错,不仅能对公司的所有业务日志监控,还能发送报警邮件[日志中出现exception等关键字时]。使用filebeat轻量级收集日志,logstash切割日志,还可以监控其他系统日志。更方便的是kibana控制台可以快速、方便的查询日志,还可以对日志数据进行业务上的数据统计。solr和elasticsearch的底层都是基于lucence,都可以满足业务需求。由于公司的业务数据没有达到很大的数量级,性能差异无法有效对比。但是为了统一后台管理,以及代码的统一,决定采用es作为搜索服务。

 

步骤如下:

1. 查找项目中涉及solr使用的所有方法、业务【主要设计搜索业务、业务数据的全量/增量更新、业务数据的增删改维护】
    根据情况,标记@deprecated,后期逐步下线。
2. elasticsearc的数据存储基类方法编写。【设计增删改查、基本的几种搜索类型业务】
3. 后台/管理台的数据维护执行双写
    a.数据插入时同时插入solr\es
    b.数据修改时同时修改solr\es中的数据(没有做d,会提示找不到数据)
    c.数据删除时同时删除solr\es中的数据(没有做d,会提示找不到数据)
    d.同时全量更新solr\es中的数据
4.前端在进行搜索时,增加开关。控制搜索时是使用solr,还是使用es【开关使用disconf配置中心】
5.如果es内置的分词器不满足使用时,请安装\设置所需的分词器【如,中文分词器需要使用ik_analyze】
6.配置默认读solr
7.发布到测试环境、正式环境【确保代码是正确的,不影响正常功能】
8.测试环境开关切换为es。确定es的搜索效果等
9.待一切正常,正式环境切换es。一旦发生问题,可快速切换solr
10.使用正常无误后,下线solr相关代码
在进行es操作时,根据不同的业务需求\环境要求,可能要做一些处理
a. 索引模板的建立【单点环境,建立一个索引碎片、副本少的模板,优化使用环境】
b. 索引的mapping映射【由于es在自动映射数据时,可能对于一些时间类型、数字类型会处理为text类型,不方便后期的时间分段统计等。可以在制定索引模板时,同时制定mapping映射规则】
c. 搜索时,为了满足搜索的最大匹配,需要指定分词器。这个过程可以在mapping中设置,也可以在代码中设置。按需处理
d. 环境处理,由于es安装了ssl,在各个环境需要使用账号密码进行登录操作。而为了代码、数据的安全性。账密单独抽取到配置中心进行设置。
f. elasticsearch的java api本身提供了单个/批量操作。根据自身业务的特点,进行接口的实现。
整体还是比较简单的。es已经更新到了7.0,整体使用简单又方便,社区活跃度也不错。比较推荐使用。
如果需要搭建elk环境、索引配置、sentinl邮件发送等,请看elasticsearch系列文章

 


   原创文章,转载请标明本文链接: 记一次现有项目中的solr切换es方案及说明

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

更多阅读