# es **Repository Path**: zhhongyu_admin/es ## Basic Information - **Project Name**: es - **Description**: 简易博客检索系统使用前后端分离,前端使用 Vue ,后端使用 SpringBoot 数据库 MySQL 检索使用 ElasticSearch 同步数据使用 logstash - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2020-02-25 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 简易博客检索系统使用前后端分离,前端使用 Vue ,后端使用 SpringBoot 数据库 MySQL 检索使用 ElasticSearch 同步数据使用 logstash ### SpringBoot 集成 ElasticSearch 实现 MySQL 数据同步 需要提前安装好 ElasticSearch 。logstash 安装下文有具体说明。 新建表 blog 必须有字段 id update_time,可参考项目中 entity 包下字段建表。 使用步骤 1. download 本项目 2. 修改 yml 文件中的数据库配置,es 配置。 3. 配置 logstash ,见下文。 4. 启动本项目,在本地 8081 端口访问项目,可以看到有两个按钮,分别是通过 MySQL 的模糊查询和 es 的检索耗时比较。 ### 配置 logstash 使用 logstash 同步 mysql 中的数据。全量同步,增量更新 这里使用服务器中的 centos 。 前提,CentOS 中安装 ElasticSearch 。 第一步,下载 [logstash](https://www.elastic.co/cn/downloads/past-releases#logstash) 第二步,把数据库连接的驱动 jar 包放到 logstash 的目录中。 ![enter description here](./images/1574645141708.png) 第三步,在 config 文件夹中新建文件 `mysql.conf`,配置数据库,es 端口等输入输出规则 ```dsconfig input{ jdbc{ # jdbc 驱动包位置 jdbc_driver_library => "/home/es/logstash-6.2.4/mysql-connector-java-5.1.6.jar" # 要使用的驱动包类 jdbc_driver_class => "com.mysql.jdbc.Driver" # mysql 数据库的连接信息 jdbc_connection_string => "jdbc:mysql://localhost:3306/blog" # mysql 用户 jdbc_user => "root" # 密码 jdbc_password => "密码" # 定时任务,多久执行一次查询,默认一分钟,如果想要没有延迟,可以使用 schedule => "* * * * *" schedule => "* * * * *" # 清空上一次的 sql_last_value 记录 clean_run => true # 要执行的语句 statement => "select * from t_blog where update_time > :sql_last_value and update_time < NOW() order by update_time desc" } } output { elasticsearch { # es host : port hosts => ["192.168.42.134:9200"] # 索引 index => "blog" # _id document_id => "%{id}" } } ``` 第四步,以配置文件的方式启动 logstash ```shell [es@localhost bin]$ ./logstash -f ../config/mysql.conf ``` 第五步,kibana 中查看是否同步成功 ```shell GET blog/_stats // 查看全部数据 POST blog/_search { } ``` 参考资料: ``` 笔记地址: https://www.yuque.com/gaohanghang/vx5cb2/aa576g 视频地址:https://www.imooc.com/learn/1161 参考代码:https://github.com/sixkery/blog_index ``` 注意事项 ``` 1.本项目采用的是es7.5(最新版是7.5.1) 由于找不到最新版本对象的工具,所以采用了7.5 2. Elasticsearch从7开始不推荐使用TransportClient客户端访问,8会彻底删除该客户端API的支持, 推荐用High Level REST Client,所以此处配置使用spring.elasticsearch.rest.uris,默认值为http://localhost:9200 3.mysql-connector-java-5.1.48-bin.jar拷贝到 logstash目录\logstash-core\lib\jars 下 jar包一定要放到这里,不然会报错的 4.linux root用户不能启动elasticsearch .必须新建用户。 5.elasticsearch中本没有修改,它的修改原理是该是先删除在新增(这个是百度的结果,没有具体实践) ```