Elasticsearch环境搭建

Elasticsearch简介与环境搭建

一、简介

ElasticSearch是一个分布式,高性能、高可用、可伸缩的搜索和分析系统,

根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

1、什么是搜索

​ 百度、Google:我们想寻找一个我们喜欢的电影或者书籍就会去百度或者Google搜索一下。
​ 互联网搜索:电商搜索商品,招聘网站搜索简历或者岗位
​ IT系统的搜索:员工管理搜索,会议管理搜索

2.如果用数据库做搜索会怎么样

在这里插入图片描述

3.正常的sql搜索存在的问题:

  1. 如果表记录上千万上亿了这个性能问题,另外一个如果有一个本文字段要在里面模糊配置,这个就会出现严重的性能问题
  2. 还不能将搜索词拆分开来,比如上面这个只能搜索名字是“张三”开头的员工,如果想搜出“张小三”那是搜索不出来的。
    总体来说,用数据库来实现搜索,是不太靠谱的,通常性能也会很差

3、什么是全文检索、倒排索引和Lucene

举个简单的例子:比如最近上映的热剧(碟中谍6:全面瓦解),我们想搜索一下全面瓦解这个电视剧,可是在输入的过程,不小心输入了”全瓦解”,我们看看百度这个返回了什么,百度返回的结果确实是我想要找到的内容
在这里插入图片描述

全文检索

就比较好理解的,就是当我们输入“全瓦解”,会被拆分成”全”,“瓦解”2个词,用2个词去倒排索引里面去检索数据,检索到的数据返回。整个过程就叫做全文检索

倒排索引

在这里插入图片描述

如果这个用数据库的思维来做的话,假如一共100W的记录,按照之前的思路就是扫描100W次,而且每次扫描,都需要匹配那个文本所有的字符,确认是否包含搜索的关键词,而且还不能将搜索词拆解来进行检索
如果是利用倒排索引的话,假设还是100W,拆分出来的词语,假设有1000W个词语,那么在倒排索引中,就有1000W行。我们可能不需要检索1000W词,有可能检索1次,就能找到我们需要的数据,也有可能是100W次,也有可能是1000W次
这就是为什么我们命名搜索的是全瓦解,事实上只是按照瓦解搜索的,因为全在倒排索引中没有存在

4、ElasticSearch的应用场景

  1. 维基百科
  2. The Guardian(国外新闻网站)
  3. Stack Overflow(国外的程序异常讨论论坛)
  4. GitHub(开源代码管理)
  5. 电商网站
  6. 日志数据分析
  7. 商品价格监控网站
  8. BI系统
  9. 站内搜索

5.ElasticSearch的功能

分布式的搜索引擎和数据分析引擎
搜索:网站的站内搜索,IT系统的检索
数据分析:电商网站,统计销售排名前10的商家
全文检索,结构化检索,数据分析
全文检索:我想搜索商品名称包含某个关键字的商品
结构化检索:我想搜索商品分类为日化用品的商品都有哪些
数据分析:我们分析每一个商品分类下有多少个商品
对海量数据进行近实时的处理
分布式:ES自动可以将海量数据分散到多台服务器上去存储和检索
海联数据的处理:分布式以后,就可以采用大量的服务器去存储和检索数据,自然而然就可以实现海量数据的处理了
近实时:检索数据要花费1小时(这就不要近实时,离线批处理,batch-processing);在秒级别对数据进行搜索和分析

二、环境搭建

环境版本要求:

1. elasticsearch-7.8.0
2. elasticsearch-analysis-ik-7.8.0
3. kibana-7.8.0
4. node-v14.19.0-x64.msi
1.安装 elasticsearch-7.8.0

(1)Elasticsearch无需安装,解压即用。

(2)配置 elasticsearch-7.8.0\config\elasticsearch.yaml

http.cors.enabled: true #表示是否支持跨域,默认为false
http.cors.allow-origin: "*"  #当设置允许跨域,默认为*,表示支持所有域名

(3)进入elasticsearch/bin目录,可以看到下面的执行文件:elasticsearch.bat 双击运行,等全部加载完

在这里插入图片描述

可以看到绑定了两个端口:

  • 9300:Java程序访问的端口
  • 9200:浏览器、postman访问的端口

(3)我们在浏览器中访问:http://127.0.0.1:9200

在这里插入图片描述

看到了上面的信息,说明你的Elasticsearch已经安装成功了

2.配置Elasticsearch的客户端工具
(1)安装node.js

node-v14.19.0-x64.msi

安装完成用cmd进入安装目录执行 node -v可查看版本号

(2) 执行 npm install -g grunt-cli 安装grunt

安装完成后执行grunt -version查看是否安装成功,会显示安装的版本号

在这里插入图片描述

(3)解压安装elasticsearch-head-master

在这里插入图片描述

​ 修改Gruntfile.js

在这里插入图片描述

在对应的位置加上hostname:’*’
在这里插入图片描述

(4)启动 elasticsearch-head-master
  • 在命令提示符进入该文件夹根目录例:D:\environment\elasticsearch-head-master
npm install -g
  • 执行npm run start 运行head插件,如果运行不成功建议重新安装grunt

    npm run start
    
(5)打开浏览器访问head:http://127.0.0.1:9100健康值为绿色即成功

在这里插入图片描述

3 .安装Ik分词器

什么是IK分词器?

分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如“我爱黎明”会被分为"我",“爱”,““黎”,“明” 。这显然是不符合要求的,所以我们需要安装中文分词器IK来解决这个问题。

IK提供了两个分词算法: ik. smart和ik_max_ word

其中ik_smart为最少切分, ik _max_word为最细粒度划分

ElasticSearch 默认采用的分词器, 是单个字分词 ,效果很差 ,所以我们需要安装一个更实用的分词器,这里采用IK分词器

1、下载

https://github.com/medcl/elasticsearch-analysis-ik

elasticsearch-analysis-ik-7.8.0.zip

(1)解压到elasticsearch主文件下plugins下的一个新建文件夹,我们起名为ik

例:解压到\elasticsearch-7.8.0-windows-x86_64\elasticsearch-7.8.0\plugins\ik

在这里插入图片描述

(2)重启elasticsearch主文件和客户端工具

在这里插入图片描述

正常能通过

http://127.0.0.1:9200/访问

http://127.0.0.1:9100/健康值仍为绿色,成功

4. Kibana安装

Kibana是一个针对Elasticsearch的开源分析及可视化平台 ,用来搜索、查看交互存储在Elasticsearch索引中的数据。 使用Kibana,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板( dashboard )实时显示Elasticsearch查询动态。设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内就可以完成Kibana安装并启动Elasticsearch索引监测。

官网:https://www.elastic.co/cn/kibana

注意:使用的ES版本要与Kibana的对应

elasticsearch-7.8.0

kibana-7.8.0

下载完成解压kibana-7.8.0,

修改kibana/config/kibana.yml

将连接es服务的配置 注释去除,使得有效
在这里插入图片描述

双击kibana.bat启动即可, 访问http://localhost:5601/

在这里插入图片描述

在这里插入图片描述

在Kibana目录下的config中修改Kibana.yml文件,最后一行加上

i18n.locale: “zh-CN”

重启即可

ElasticSearch、head、Kibana三个服务:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值