elasticsearch
简介
为什么要学习es,原因主要在于,当我们的应用服务面对的用户量特别大的时候,传统的数据库搜索可能会表现得力不从心,此时就需要全文检索技术的帮助。
Elasticsearch就是一个基于Lucene封装的web服务,实现了索引的CRUD功能,并对外提供了可以访问的Rest风格的接口。当我们需要访问elasticsearch时,只需要向指定的URL路径发起请求即可。
Elastic官网:www.elastic.co/cn/
Elastic有一条完整的产品线:Elasticsearch、Kibana、Logstash等,前面说的三个就是大家常说的ELK技术栈。
Elasticsearch官网:www.elastic.co/cn/products…
如上所述,Elasticsearch具备以下特点:
- 分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)
- Restful风格,一切API都遵循Rest原则,容易上手
- 近实时搜索,数据更新在Elasticsearch中几乎是完全同步的。
准备
在这里想多说一句,java工程师需要掌握的组件是有范围的,学习这些组件一定要成体系地、系统地做一个学习。软件安装、上手操作、服务集成、底层探索,按部就班地去做。切忌心浮气躁,走马观花。本篇主要完成es的安装。
学习es的话需要安装的软件包括
- elasticsearch 优秀的搜索和数据分析引擎
- elasticsearch-head es可视化界面
- kibana Kibana是一个基于Node.js的Elasticsearch索引库数据统计工具
- ik分词器 提供中文分词功能
安装es
直接使用华为云镜像下载es,速度快,谁用谁知道!
mirrors.huaweicloud.com/elasticsear…
本次选择7.6.1版本,点进去linux、windows等都有,本次选择windows。
下载完成之后解压,运行bin目录下的elasticsearch.bat,看到最后这边显示started即可。
随后访问下本地9200端口:
es安装成功,you know , for search。
这里提醒大家一下,修改下es下的config目录下的elasticsearch.yml,在最后追加下跨域的配置,解决跨域问题,否则会影响咱们之后elasticsearch-head对于es的访问。
http.cors.enabled: true
# 跨域访问允许的域名地址
http.cors.allow-origin: "*"
安装elasticsearch-head
es的可视化界面,选择并非只有这一个,例如elasticHD也可以,本次就使用长得不怎么好看的elasticsearch-head吧。安装elasticsearch-head的前提是你的环境已经安装了node js环境,这个如未安装一定安装下,因为elasticsearch-head本身也是个前端项目,需要node js环境的支持。
elasticsearch-head项目的git地址: github.com/mobz/elasti…
git直接clone下来
随后项目根目录下执行cmd,运行两个命令
npm install , 下载前端需要的一些插件。
插件下载完毕之后
npm run start , 将项目启动
ok,9100端口,我们访问下:
刚安装的话,你的界面肯定和我的长得不一致的,没关系,是因为我做了些别的操作。你点击下连接显示green或者yellow都可以,都说明连接是成功的。
安装kibana
Kibana是一个基于Node.js的Elasticsearch索引库数据统计工具,可以利用Elasticsearch的聚合功能,生成各种图表,如柱形图,线状图,饼图等。
而且还提供了操作Elasticsearch索引数据的控制台,并且提供了一定的API提示,非常有利于我们学习Elasticsearch的语法。
kibana的安装也非常简单,软件包还是去华为云镜像上下载:mirrors.huaweicloud.com/kibana/?C=N… 。下载的版本和es保持一致7.6.1.
运行kibana.bat即可启动
随后来到主界面
我们随便发个请求GET .kibana_1,.kibana_1是启动kibana后会自动在es创建的索引,我们可以先用elasticsearch-head看下
发送请求之后数据也返回了
至此,kibana安装成功。补充一点,如果英文界面看着难受,可以改为中文界面。修改下kibana下的bin下的kibana.yml最后一行追加i18n.locale: "zh-CN"即可
重启kibana之后就生效了。
安装ik分词器
下载地址:github.com/medcl/elast… 。 也是一个github项目,我下载的是压缩包,解压之后放在es的plugins下面即可!
里面长这个样子:
随后我们重启es看看插件是否能被加载
ok的。
总结
本篇主要简单介绍了下es、安装了些相关软件,下篇我们开始操作。