Elasticsearch 实现搜索引擎服务
说明
- 项目运行的前提条件:服务注册中心已经启动。
- 本项目的服务注册与发现是基于 Spring Cloud Consul 实现。具体内容博主写在另一篇博客:
- 本博客是 Spring Cloud 微服务化(精简完整版)的一部分。
- 当前 elasticsearch 最新版本是 7.0.0。在使用这个版本的时候,遇到一些问题:
- 当前最新的 spring-data-elasticsearch 默认使用的是 6.4.3 版本,有兼容性问题
- 博主尝试了各种解决方法,仍然没有成功,最后决定暂时使用 6.4.3 版本演示。
- 如果有同学有已经完美解决这个问题,希望可以给博主留言,放个链接。
- 当前最新的 spring-data-elasticsearch 默认使用的是 6.4.3 版本,有兼容性问题
安装
Elasticsearch 服务器
- 官网 Quick Start 页面:https://www.elastic.co/cn/start
- 下载程序包:
elasticsearch-6.4.3-windows-x86_64.zip
- 解压程序包,在
bin
目录执行./elasticsearch.bat
命令启动:
Kibana —— 可视化工具
- 博主的另一篇博客中有安装教程:
数据库数据同步
方案一: Logstash 同步
- 安装 Logstash
- 到官方下载和 elasticsearch 相同版本号的程序包。博主当前下载的是:logstash-6.4.3.zip
- 解压 logstash-6.4.3.zip 到指定目录。
- 通过 logstash-input-jdbc 插件实现数据库数据同步。具体内容在博主的另一篇博客:
方案二:Kafka 同步
- 同步策略:
- 首先,采集数据到 Kafka
- 然后,从 kafka 读取数据,再调用 elasticsearch 的 API添加、更新索引
- 可以更加灵活的整理数据信息,自定义索引内容
- 步骤:
- TODO
- 这部分内容稍微有点麻烦,博主后面再开另外的博客补上这部分内容。
- TODO
搜索引擎服务项目
- 项目源代码:https://github.com/AndyWannaSing/awesome-distributed-system/tree/master/awesome-elasticsearch-server
接口测试
- 搜索引擎中的数据: