Elasticsearch 7.6.1教程一(环境搭建es+head+kibana)
视频推荐:B站 遇见狂神说 https://www.bilibili.com/video/BV17a4y1x7zq?from=search&seid=13757859677581124562&spm_id_from=333.337.0.0
简介
版本 ElasticSearch 7.6.1
6.x 7.x 区别十分大 6.x的原生API
我们要讲解什么
1、聊一个人
2、货比三家
3、安装
4、生态圈
5、分词器 IK
6、RestFul操作 ES
7、CRUD
8、SpringBoot 集成 ElasticSearch (从原理分析)
9、爬虫爬取数据
10、实战
大量数据的搜索用ES
Lucene创始人
Doug Cutting 开发出Lucene ,目标是为各种中小型应用软件加入全文检索功能 。因为好用而开源,非常受欢迎。
后来又开发出Nutch.
2003年 Google公开了谷歌文件系统GFS(Google File System), 应用于 存储海量搜索数据。
第二年 ,Doug Cutting 基于Google的GFS论文,实现了分布式文件存储系统,并将其命名为NDFS (Nutch Distributed File System )。
2004年,Google又发表了一篇技术学术论文,介绍自己的MapReduce编程模型,这个编程模型,用于大规模数据集(大于1TB)的并行分析运算。
第二年,Doug Cutting 又基于MapReduce,又在Nutch搜索引擎实现了该功能。
2006年,Doug Cutting 加盟雅虎。
加盟雅虎后,Doug Cutting将NDFS和MapReduce进行了升级改造,并重新命名为Hadoop。
2006年,谷歌又发论文了。
这个,他们介绍了自己的BigTable.这是一种分布式数据存储系统,一种用来处理海量数据点非关系型数据库。
Doug Cutting当然没有放过,在自己的hadoop系统里面,引入了BigTable,并命名为HBase.
回到主题
Lucene是一套信息检索工具包!jar包!不包含 搜索引擎系统!
包含: 索引结构!读写索引的工具!排序,搜索规则…工具类!
Lucene 和 ES 的关系:
ES 是基于 Lucene做了一些封装和增强。
ES 概述
开源、高扩展性、分布式全文检索引擎、
目的是通过简单的RESTful API 来隐藏Lucene的复杂性,从而让全文检索变得简单。
ES和Solr的差别
Es 是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。
它用于全文搜索、结构化搜索、分析 以及将这三者混合使用。
Solr 也基于Lucene。Solr提供了比Lucene更丰富的查询语言。
Solr可以独立运行,运行在jetty、tomcat等Servlet容器中。
Solr对外提供了类似于Web-service的API接口。用户可以通过http请求,向搜素引擎服务器提交一定的格式的文件,生成索引;也可以通过提出查找请求,并得到返回结果。
差别
单纯对数据进行搜索,Solr更快,
建立索引后,ES更快,随着数据量增加,ES优势更加明显
ElasticSearch安装
声明 :JDK1.8,最低要求!ElasticSearch客户端,界面工具!
java开发,ElasticSearch的版本和我们之后对应的jar包!版本对应!环境政策!
下载
kibana 7.6.1 linux(tar) windows版 elasticsearch-analysis-ik分词器 head-master elastic 7.6.1 linux和windows版
es 官网
https:www.elastic.co/ 慢
推荐地址:
ElasticSearch: https://mirrors.huaweicloud.com/elasticsearch/?C=N&O=D
logstash: https://mirrors.huaweicloud.com/logstash/?C=N&O=D
kibana: https://mirrors.huaweicloud.com/kibana/?C=N&O=D
ik分词器:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.6.1
windows下安装
windos 下具体安装:
- es 解压到安装文件夹即可
2.解压后具体目录分析
bin 启动文件
config 配置文件
log4j2 日志配置文件
jvm.options jvm参数,需要配置,默认是一核一g
elasticsearch.yml elasticsearch的配置文件! 默认是9200端口!跨域
lib 相关jar包
modules 功能模块
plugins 插件!ik
-
启动
打开bin目录,双击elasticsearch.bat文件
4.访问9200 http://localhost:9200/ 或者http://127.0.0.1:9200 出现
{
"name" : "HIPPO",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "l9df7RRlSq6![请添加图片描述](https://img-blog.csdnimg.cn/47495f61102b4072bbe311dc0447a9b3.png)
BUyK_vyY9_A",
"version" : {
"number" : "7.6.1",
"build_flavor" : "default",
"build_type" : "zip",
"build_hash" : "aa751e09be0a5072e8570670309b1f12348f023b",
"build_date" : "2020-02-29T00:15:25.529771Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
安装可视化界面 es head的插件
Elasticsearch-head-master可视化界面安装
下载: 搜 elasticsearch head 找到github的地址
https://github.com/mobz/elasticsearch-head
问题:head 依赖于node.js,所以提前安装了docker
下载后也解压到elasticsearch文件夹
如何启动:
在github上有相关running步骤
进入head-master文件夹,在文件夹里启动cmd
npm install #安装依赖
如果慢,可以改为访问公司或者阿里的镜像
完毕后启动项目
npm run start
信息显示 访问地址 :http://localhost:9100
就前端启动了。
但是连接不上9200的elasticsearch,原因:跨域问题。
跨域问题解决
a.先关闭elasticsearch, 打开文件 elasticsearch.yml
b.在文件的最后加上
http.cors.enabled: true
http.cors.allow-origin: "*"
保存后关闭,重启es
出的一个毛病:allow打错了,打成allowd,造成闪退
再次访问9100:
点击信息:
即可展示信息
可以看到新建索引按钮
初学,就把es当一个数据库!(可以建立索引(库),文档(数据库中的数据))
这个head就当做数据展示工具!我们后面所有的查询,用Kibana。Kibana查询更高级。
Kibana安装
了解ELK
ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称。市民上也被称为Elastic Stack。
其中ElasticSearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用ElasticSearch作为底层支持框架。
Logstash是ELK的重要数据流引起,用于从不同目标(文件/数据存储/MQ)收集不同格式数据,经过过滤后支持输出到不同目的地(文件/MQ/redis/elasticsearch/kafka等)。
Kibana可以将elasticsearch的数据通过友好的页面展示出来,提供实时分析的功能。
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表盘(dashboard)实时显示Elasticsearch查询动态。设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内久可以完成Kibana安装并启动Elasticsearch索引监测。
官网:https://www.elastic.co/cn/kibana
Kibana和es的版本要一致。
a.下载后解压到es的安装的文件夹,同一级
解压过程很慢,但好处:ELK基本是拆箱使用。
查看解压后的kibana.bat,发现本质还是node.js
所以仍然是需要安装node.js的
b.启动
双击kibana.bat
cmd显示:
http server running at http://localhost:5601
c. 访问测试
访问 地址
d.开发工具 (有postman/curl/head/谷歌浏览器插件)
Kibana的开发工具台
左侧的一个扳手
e.汉化
在 .i18nrc.json里面,有汉化包的地址
在x-pack里面的plugins里有translations包
如何修改配置:
在config包里面,有kibana.yml
点开修改
将 “en” 改成"zh-CN" ,搞定。
重启,汉化成功!