Elasticsearch安装 Head插件安装和使用 IK分词器 Es跟mySql的数据同步

本文详细介绍了Elasticsearch的安装步骤,包括Head插件和IK分词器的使用,以及如何通过Logstash实现Elasticsearch与MySQL的数据同步。

下载并且安装ES

Elasticsearch与MySQL数据库逻辑结构概念的对比

Elasticsearch关系型数据库Mysql
索引(index)数据库(databases)
类型(type)表(table)
文档(document)行(row)

下载ElasticSearch 5.6.8版本
https://www.elastic.co/downloads/past-releases/elasticsearch-5-6-8
资源\配套软件中也提供了安装包 无需安装,解压安装包后即可使用
在命令提示符下,进入ElasticSearch安装目录下的bin目录,执行命令

.\elasticsearch

我们打开浏览器,在地址栏输入http://127.0.0.1:9200/ 即可看到输出结果


安装Head插件

因为使用es-head工具,必须使用node js的环境支撑 Node.js 是什么? 前后台分离的时候,
前端想调用我们后端,需要依赖http请求,搭建前端的开发环境,node.js

Node.js 就是运行在服务端的 JavaScript。

Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。

Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

安装node js
https://nodejs.org/zh-cn/点击下载并且安装
安装成功后,检查环境是否正常
在这里插入图片描述

打开github head的源码
https://github.com/mobz/elasticsearch-head下载并且解压到你本地
解压后,打开dos窗口,输入指令

npm install

在这里插入图片描述
启动head
在解压的目录下输入指令

npm run start

在这里插入图片描述
在这里插入图片描述


**解决跨域问题** 点击连接按钮,没有任何响应,按F12会发现如下错误 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200523090942754.png)

Access to XMLHttpRequest at ‘http://localhost:9200/’ from origin ‘http://localhost:9100’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

需要修改elaticSearch配置文件:elasticsearch.yml文件中,增加以下两句命令

http.cors.enabled: true
http.cors.allow-origin: "*"

此步为允许elasticsearch跨越访问 点击连接即可看到相关信息
重启es服务,刷新页面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


IK分词器

1.IK分词器的安装以及使用
1)讲下载好的IK分词器,解压,解压后,点进去,将里面的elasticsearch文件重命名为ik
2)讲ik文件夹拷贝到elasticsearch/plugins目录下
3)重新启动,即可加载ik分词器
在这里插入图片描述
2.测试IK分词器的效果
IK提交两个分词算法 ik_smart 和 ik_max_word
ik_smart:最少切片
ik_max_word:最细粒度划分切片
3.自定义词库
my.
4.测试
我们在浏览器输入:

http://localhost:9200/_analyze?analyzer=chinese&pretty=true&text=我是中国人,我爱中国

Es跟mySql的数据同步

Logstash介绍
es官方推荐的一款轻量级的日志搜索处理框架,可以方便的把分散的,多样化的日志搜集起来, 并进行自定义的处理,然后 帮你传输到指定的位置,比如某个服务器或者文件中

1.Logstash安装和测试
解压logstash,进入bin目录下

.\logstash -e 'input {stdin {} }  output{stdout{}} '

输入和输出
在这里插入图片描述

  • Stdin,表示输入流,指从键盘输入
  • Stdout 表示输出流,指从显示器输出
  • -e 执行
  • -f 执行文件

2.Mysql数据导入elasticsearch
①在logstatsh的目录下创建一个新的文件夹 mysqldata名字随意)
②在新建的文件夹下,从你的maven仓库中拷贝一份新数据库的jar包(依赖)
③新建一个mysql.conf的文件(文件的编码一定要是UTF-8的文件编码)
④把一下内容拷贝到mysql.conf文件中

input {
   jdbc {
    jdbc_connection_string =>"jdbc:mysql://192.168.152.153:3306/tensquare_article?setUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC"
    jdbc_user => "root"
    jdbc_password => "root"
    jdbc_driver_library => "D:/workspace/dailywork/Liming/logstash-5.6.8/logstash-5.6.8/mysqldata/mysql-connector-java-5.1.38.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_paging_enabled => "true"
    jdbc_page_size => "50000"
    statement => "select id,title,content ,state FROM tb_article "
    schedule => "* * * * *"
	
	}
}


output {
  elasticsearch {
      hosts => "localhost:9200"
      index => "tensquare"
      document_id => "%{id}"
      document_type => "articlees"
   }

stdout {
    codec => json_lines
  }
}
  • jdbc_connection_string :需要你配置数据库连接地址
  • jdbc_user :用户名
  • jdbc_user :密码
  • jdbc_driver_library配置你本地的mysql-connector-java-5.1.38.jar包的真实路径
  • statement :查询的sql语句,并且字段一定要跟es中的type(表)保持一致
  • index :eleaticsearch中的索引库的名称 document_type:eleaticsearch中的type名称(一定是存在)
  • hosts :eleaticsearch的ip地址跟端口号 schedule :定时任务的时间表达式 (我们配置的是一分钟执行一次)

3.运行查看

.\logstash -f ..\mysqldata\mysql.conf

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值