目录
笔记记录 B站狂神说Java的ElasticSearch课程:https://www.bilibili.com/video/BV17a4y1x7zq.
链接:https://pan.baidu.com/s/1M5uWdYsCZyzIAOcgcRkA_A
提取码:qk8p
复制这段内容后打开百度网盘手机App,操作更方便哦
一、ElasticSearch-windows下安装
1.1安装
JDK8,最低要求
下载地址:https://www.elastic.co/cn/downloads/
历史版本下载:https://www.elastic.co/cn/downloads/past-releases/
1.2熟悉目录
bin 启动文件目录
config 配置文件目录
1og4j2 日志配置文件
jvm.options java 虚拟机相关的配置(默认启动占1g内存,内容不够需要自己调整)
elasticsearch.ym1 elasticsearch 的配置文件! 默认9200端口!跨域!
1ib
相关jar包
modules 功能模块目录
plugins 插件目录
ik分词器
1.3启动
1.4结果
二、安装可视化界面elasticsearch-head
使用前提:需要安装nodejs
2.1安装
下载地址 https://github.com/mobz/elasticsearch-head
2.2启动
cd elasticsearch-head
# 安装依赖
npm install
# 启动
npm run start
# 访问
http://localhost:9100/
2.3访问
存在跨域问题(只有当两个页面同源,才能交互)
同源(端口,主机,协议三者都相同)
https://blog.csdn.net/qq_38128179/article/details/84956552
开启跨域(在elasticsearch解压目录config下elasticsearch.yml中添加)
# 开启跨域
http.cors.enabled: true
# 所有人访问
http.cors.allow-origin: "*"
2.4连接测试
三、安装kibana
Kibana是一个针对ElasticSearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana ,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板( dashboard )实时显示Elasticsearch查询动态。设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内就可以完成Kibana安装并启动Elasticsearch索引监测。
3.1、下载地址
下载地址: https://www.elastic.co/cn/downloads/
历史版本下载: https://www.elastic.co/cn/downloads/past-releases/
3.2启动
3.3访问
3.4、kibana如何汉化?
编辑器打开kibana解压目录/config/kibana.yml,添加
i18n.locale: "zh-CN"
四、IK分词器(elasticsearch插件)
下载地址: https://github.com/medcl/elasticsearch-analysis-ik/releases
4.1分词
即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一一个匹配操作,默认的中文分词是将每个字看成一个词
(不使用用IK分词器的情况下),比如“汾河公园”会被分为”汾”,”河”,”公”,”园” ,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。
4.2IK提供了两个分词算法
ik_smart和ik_max_word ,其中ik_smart为最少切分, ik_max_word为最细粒度划分!
4.3安装
ik文件夹是自己创建的—>将下载的包解压到ElasticSearch的plugins目录ik文件夹下
4.4重启ElasticSearch
加载了IK分词器
4.5使用ElasticSearch安装补录/bin/elasticsearch-plugin 可以查看插件
E:\ElasticSearch\elasticsearch-7.6.1\bin>elasticsearch-plugin list
4.6使用kibana测试
ik_smart:最小切分
ik_max_word:最细粒度划分(穷尽词库的可能)
问题:例如:“狂神说”希望它不分开
4.7手动将该词添加到分词器的词典当中
elasticsearch目录/plugins/ik/config/IKAnalyzer.cfg.xml
打开 IKAnalyzer.cfg.xml 文件,扩展字典
重启ElasticSearch,再次使用kibana测试
五、数据库同步数据-- 使用logstash
下载链接:链接: https://www.elastic.co/fr/downloads/logstash. 在 past releases.找到logstash-6.1.4.zip 解压
5.1解压后操作
进入bin目录中创建:一个bin文件夹(本例子为bin,命名随意),jdbc.sql,logstash.conf文件
(一)bin文件夹中放数据库连接包https://pan.baidu.com/s/1ijqD2oQ8_yPQMPErjY9uXQ. 密码:6vfb
(二)jdbc.sql 文件放入下面sql语句:
SELECT * from cm_user
(三)logstash.conf
input {
stdin {
}
jdbc {
# mysql 数据库链接,mybatis为数据库名
jdbc_connection_string => "jdbc:mysql://192.168.1.153:3306/cmRetireSystem"
# 用户名和密码
jdbc_user => "用户名"
jdbc_password => "密码"
# 驱动 修改为mysql连接包位置
jdbc_driver_library => "D:/ESKS/logstash-7.6.1/bin/bin/mysql-connector-java-5.1.7-bin.jar"
# 驱动类名
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
# 执行的sql 文件路径+名称
statement_filepath => "jdbc.sql"
# 设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
schedule => "* * * * *"
}
}
output {
elasticsearch {
# ES的IP地址及端口
hosts => ["localhost:9200"]
# 索引名称 可自定义
index => "test"
# 需要关联的数据库中有有一个id字段,对应类型中的id
document_id => "%{user_id}"
document_type => "test"
}
stdout {
# JSON格式输出
codec => json_lines
}
}
5.2配置多个表映射到ES
1、只需要在jdbc中加入type ;
2、在output 中使用type判断即可;
input {
stdin {
}
jdbc {
type => "cm_role"
# mysql 数据库链接,mybatis为数据库名
jdbc_connection_string => "jdbc:mysql://localhost:3306/mybatis"
# 用户名和密码
jdbc_user => "root"
jdbc_password => "密码"
# 驱动 修改为mysql连接包位置
jdbc_driver_library => "D:/ESKS/logstash-7.6.1/bin/bin/mysql-connector-java-5.1.7-bin.jar"
# 驱动类名
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
# 执行的sql 文件路径+名称
statement => "select * from cm_role"
# 设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
schedule => "* * * * *"
}
jdbc {
type => "cm_person_pack"
# mysql 数据库链接,mybatis为数据库名
jdbc_connection_string => "jdbc:mysql://localhost:3306/mybatis"
# 用户名和密码
jdbc_user => "root"
jdbc_password => "密码"
# 驱动 修改为mysql连接包位置
jdbc_driver_library => "D:/ESKS/logstash-7.6.1/bin/bin/mysql-connector-java-5.1.7-bin.jar"
# 驱动类名
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
# 执行的sql 文件路径+名称
statement => "select * from cm_person_pack"
# 设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
schedule => "* * * * *"
}
}
output {
if [type]=="cm_role" {
elasticsearch {
# ES的IP地址及端口
hosts => ["localhost:9200"]
# 索引名称 可自定义
index => "test_role"
# 需要关联的数据库中有有一个id字段,对应类型中的id
document_id => "%{role_id}"
document_type => "test"
}
}
if [type]=="cm_person_pack" {
elasticsearch {
# ES的IP地址及端口
hosts => ["localhost:9200"]
# 索引名称 可自定义
index => "test_pack"
# 需要关联的数据库中有有一个id字段,对应类型中的id
document_id => "%{pack_id}"
document_type => "test"
}
}
stdout {
# JSON格式输出
codec => json_lines
}
}
5.3启动
输入 logstash -f logstash.conf (logstash.conf 文件创建的路径+文件名)
5.4成功
5.5浏览器中再次输入:http://localhost:9100
显示出数据
六、在linux下安装
学习查阅的博客: ElasticSearch最新版快速入门详解
ElasticSearch入门学习笔记(一)概念篇
ElasticSearch入门学习笔记(三)SpringBoot整合篇
SpringBoot集成BBOSS-ElasticSearch实现ElasticSearch客户端
阿里云Docker安装ES\ES_Head\安装部署logstash导mysql数据入ElasticSearch