ElasticSearch7.2入门
ElasticSearch介绍
Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
ElasticSearch,head,logstash安装
1.ElasticSearch,logstash官网下载:https://www.elastic.co/cn/downloads
2.head下载:https://github.com/zt1115798334/elasticsearch-head-master
下载后直接解压就可以
一.启动Head
使用grunt server启动,首先要安装grunt。npm install -g grunt-cli
全局安装grunt(需要nodeJs环境);然后进入到head根目录执行grunt server,默认端口是9100,如下图所示启动成功
二.启动Elasticsearch
进入Elasticsearch根目录,执行./bin/elasticsearch
默认端口是9200,如下图所示
浏览器访问http://localhost:9200
浏览器访问http://localhost:9100
可以查看节点信息,索引查询等操作。如果想要其他电脑可以访问本机的接点需要关闭防火墙,在elasticsearch.yml里面加上
network.host: 0.0.0.0
http.host: 0.0.0.0
transport.host: 127.0.0.1
http.cors.enabled: true
http.cors.allow-origin: "*"
三.同步Mysql数据到Elasticsearch
如何把mysql里面表数据同步到Elasticsearch呢?这里用到的是logstash插件。打开logstash目录下面的config新建一个文件mysqltoes.conf
将下面的配置信息复制,对应的修改自己需要的部分
input {
stdin { }
jdbc {
# 连接数据库
jdbc_connection_string => "jdbc:mysql://192.168.1.1:3307/smart-med"
# 用户名
jdbc_user => "smart-med"
# 密码
jdbc_password => "123456"
# java-mysql驱动位置
jdbc_driver_library => "C:/Users/dofun/.m2/repository/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
# 需要同步那个表的数据,就查询对应表
statement => "SELECT * FROM t_basic_case"
# 同步间隔schedule表达式
schedule => "* * * * *"
}
}
output {
stdout {
codec => json_lines
}
# elasticsearch配置
elasticsearch {
# 节点url
hosts => "localhost:9200"
# 索引名称,相当于mysql的数据库名称
index => "smart-med"
# 文档类型,相当于mysql里面的表名称
document_type => "text"
# 文档id
document_id => "%{id}"
}
}
配置完后启动logstash,进入logstash根目录执行bin\logstash.bat -f config\mysqltoes.conf
,可以看到正在同步数据
同步完成后可以看到,已经创建了对应的索引和数据
总结
ElasticSearch,head, logstash的安装,数据同步就写到这里,想要了解更多关于ElasticSearch操作可以自行学习。下一篇会写ElasticSearch配置ik分词器