Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
上官网下载对象压缩包
https://www.elastic.co/
下载解压
修改配置 config--> ealticsearch.yml
添加端口号,访问白名单
http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: 0.0.0.0
http.port: 9200
https://github.com/medcl/elasticsearch-analysis-ik
查找对应es版本
下载压缩包并解压到elasticsearch-6.4.0\plugins\ik 下
当默认分词中没有想要的词语时,可以添加自定义词库到ik插件中
修改该文件配置
再当前目录新建my.dic文件,并添加自定义词库到该文件中即可
说明已经启动成功,至此es启动完成,接着就可以往es中进行增删改查的操作
在实际应用中,不一定直接把es当作数据库使用,有时只需要把数据库中部分数据导入es中,这时候就需要用到logstash进行同步
在es官网找到logstash,下载,注意跟es版本要一致!!!!
在logstash根目录下config中新建sql文件(例子同步了两张表,homestay和roomtype)
新建配置文件jdbc.conf
input {
stdin {
}
jdbc {
jdbc_connection_string => "jdbc:mysql://xxxxxxx:4000/xx_server_test"
jdbc_user => "root"
jdbc_password => ""
jdbc_driver_library =>
"D:/codeTool/elasticsearch-6.6.0/mysqlconnector/mysql-connector-java-5.1.46.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
statement_filepath => "D:/codeTool/logstash-6.2.2/config/test_roomtype.sql"
# 设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
schedule => "* * * * *"
type => "roomtype"
}
jdbc {
jdbc_connection_string => "jdbc:mysql://xxxx:4000/xxxx_server_test"
jdbc_user => "root"
jdbc_password => ""
jdbc_driver_library =>
"D:/codeTool/elasticsearch-6.6.0/mysqlconnector/mysql-connector-java-5.1.46.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
statement_filepath => "D:/codeTool/logstash-6.2.2/config/test_homestay.sql"
# 设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
schedule => "* * * * *"
type => "homestay"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
if[type] == "roomtype" {
elasticsearch {
hosts => ["localhost:9200"]
index => "index_roomtype"
document_id => "%{id}"
#同时指定字段分词映射,非必需,后面介绍
template_overwrite => true
template => "D:/codeTool/logstash-6.4.0/config/logstash-ik.json"
}
}
if[type] == "homestay" {
elasticsearch {
hosts => ["localhost:9200"]
index => "index_homestay"
document_id => "%{id}"
template_overwrite => true
template => "D:/codeTool/logstash-6.4.0/config/logstash-ik.json"
}
}
stdout {
codec => json_lines
}
}
在命令控制台logstash目录bin下
执行语句
logstash -f ../config/jdbc.conf
接下在每分钟logstash会同步数据库数据到es的索引中
如果要查看es中的数据,可以通过elasticsearch-head插件或kibana查看
elasticsearch-head插件安装可查看这篇文章
https://www.cnblogs.com/qdhxhz/p/9520685.html
Kibana 是一个设计出来用于和 Elasticsearch 一起使用的开源的分析与可视化平台,可以用 kibana 搜索、查看、交互存放在Elasticsearch 索引里的数据,使用各种不同的图表、表格、地图等展示高级数据分析与可视化,基于浏览器的接口使你能快速创建和分享实时展现Elasticsearch查询变化的动态仪表盘,让大量数据变得简单,容易理解
kibana安装比较简单,在es官网下载跟es版本匹配的kibana解压即可
在kibana的config目录下修改配置文件kibana.yml
设置es访问地址和端口
运行
在浏览器访问
http://localhost:5601/app/kibana#/dev_tools/console?_g=()
精确查询(查询所有test中包含"中国"这个分词的内容)
GET test/_search
{
"query" : { "term" : { "content" : "中国" }}
}
获取配置模板
GET _cat/templates
删除指定模板
DELETE _template/indexss
删除指定索引
DELETE "索引名"
查看ik_max_word分词规则是否生效
GET _analyze?pretty
{
"analyzer": "ik_max_word",
"text":"海之吻酒店"
}