狂神说视频地址:https://www.bilibili.com/video/BV17a4y1x7zq?p=8
1.Elasticsearch概述
Elasticsearch,简称es,es是一个开源的高扩展的分布式全文搜索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别(大数据时代)的数据。es也可以使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
据国际权威的数据库产品评测机构DB Engines的统计,在2016年1月。ElasticSearch已超过Solr等,成为排名第一的搜索引擎类应用。
2.ES和Solr的差别
(1)ElasticSearch简介
ElasticSearch是一个实时分布式搜索和分析引擎,它让你以前所未有的速度处理大数据成为可能。
它用于全文搜索、结构化搜索、分析以及将这三者混合使用:
(2)Solr简介
(3)Lucene简介
(4)ElasticSearch和Solr比较
(5)ElasticSearch VS Solr总结
1.es基本是开箱即用(解压就可以用!),非常简单。Solr安装略微复杂。
2.Solr利用Zookeeper进行分布式管理,而ElashticSearch自身带有分布式协调管理功能。
3.Solr支持更多格式的数据,比如JSON、XML、CSV,而ElasticSearch仅支持JSON文件格式。
4.Solr官方提供的功能更多,而ElasticSearch本身更注重于核心功能,高级功能多有第三方插件提供,例如图形化界面需要kibaba友好支撑!
5.Solr查询快,但更新索引时慢(即插入删除慢),也用于电商查询多应用;
- es建立索引快(即查询慢),即实时性查询快,用于facebook新浪等搜索。
- Solr是传统搜索应用的有力解决方案,但ElasticSearch更适用于新兴的实时搜索应用。
6.Solr比较成熟,有一个更大,更成熟的用户、开发和贡献者社区,而ElasticSearch相对开发维护者较少,更新太快,学习使用成本高。
3.ElastucSearch安装
声明:JDK1.8, 最低要求,ElasticSearch客户端,界面工具!
java开发,ElasticSearch的版本和我们之后对应的java的核心jar包,版本对应,JDK环境是正常!
(1)下载
官网:https://www.elastic.co/
ELK三剑客,解压即用!(Web项目,前端环境)
(2)Window下安装!
- 直接解压就可以使用了
- 熟悉目录
bin #启动文件
config #配置文件
log4j2 #配置文件
jvm.options #java虚拟机相的配置
elasticsearch.yml #elasticsearch的配置文件 ! 默认9200端口! 跨域
jdk #环境
lib #jar包
modules #功能模块
plgins #插件 ik分词器
logs #日志
- 注:若电脑内存不足需要修改jvm 配置文件,把默认1g的改小点
- 启动!打开bin目录,点击elasticsearch.bat
默认的地址是9200,通信的地址是9300
- 访问9200
(3)安装可视化界面head es的插件
没有node.js、npm环境是不行的 - 下载地址:
- 启动
npm install #下载文件
npm run start #启动
- 连接测试发现存在跨域问题,修改es配置
访问head默认的9100需要去es的 elasticSearch.yml文件中添加配置文件
http.cors.enabled:true
http.cors.allow-origin:"*"
- 重启es服务,然后再次连接
注:初学就把es当做一个数据库!(可以建立索引(库),文档(库中的数据))
这个head我们就把它当做数据展示工具! 我们后面所有的查询,kibana
(4)了解ELK
ELK是ElasticSearch、Logstash、Kibana三大开源框架首字母大写简称。
(5)安装Kibana
Kibana是一个针对ES的开源分析及可视化平台,用来搜索、查看交互存储在ES索引中的数据。使用Kibana,可以通过各种图标进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简餐,基于浏览器的用户界面可以快速创建仪表板实时显示ES查询动态。设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内就可以完成Kibana安装并启动ES索引检测。
- 官网
注:Kibana和ES的版本一致!
下载完毕后,解压也需要一些时间,是一个标准的工程!
好处:ELK基本上都是拆箱即用!
- 启动测试
1.解压后的目录
2.启动 ,默认端口 5601
3.测试访问
4.开发工具!(Post、curl、head、谷歌浏览器插件。)
我们之后的所有操作都在这里
5.汉化 - 找到zh-CN.json
- 修改kibana.yml配置文件
修改完后,需要重启项目
(6)安装IK分词器
分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,这显然是不符合要求的,所以我们需要安装中文分词器IK来解决这个问题。
使用中文,建议使用IK分词器!
IK分词器提供了两个分词算法:IK-smart和ik-max-word,其中ik-smart为最少切分,ik-max-word为最细粒度划分。
- 安装
- 下载之后,放入我们的elasticSearch插件即可
- 重启观察es,可以看到ik分词器被加载了
- elasticsearch-plugin可以通过这个命令来查看加载进来的插件
- 使用kibana测试
ik_smart最少切分
ik_max_word为最细粒度划分,字典!
问题:我们输入超级喜欢狂神说Java
发现问题:狂神说被拆开了
这种自己需要的词,需要自己加到我们的分词器的字典中!
- IK分词器增加自己的配置(保存后,需要重启)
重启es,看细节
再次测试一下狂神说。
以后话,我们需要自己配置分词,就在自己定义的dic文件中配置即可!