
ElasticSearch 7.14-分布式搜索引
擎
编程不良⼈
1. 全⽂检索
2. 简介
3. 安装
4. kibana
5. 核⼼概念 索引 映射 ⽂档
6. ⾼级查询 Query DSL
7. 索引原理
8. 分词器
9. 过滤查询
10. 聚合查询
11. 整合应⽤
12. 集群
全⽂检索
全⽂检索 是计算机程序通过扫描⽂章中的 每⼀个词,对每⼀个词建⽴⼀个索
引,指明该词在⽂章中出现的次数和位置 。当⽤户 查询时根据建⽴的索引查找 ,
类似于通过字典的检索字表查字的过程。
索: 建⽴索引 ⽂本---->切分 ---> 词 ⽂章出现过 出现多少次
检索: 查询 关键词---> 索引中--> 符合条件⽂章 相关度排序

全⽂检索(Full-Text Retrieval)以⽂本作为检索对象,找出含有指定词汇的⽂
本。全⾯、准确和快速是衡量全⽂检索系统的关键指标。
只处理⽂本、不处理语义
搜索时英⽂不区分⼤⼩写
结果列表有相关度排序
简介
什么是ElasticSearch
ElasticSearch 简称 ES ,是基于 Apache Lucene 构建的 开源搜索引
擎 ,是当前最流⾏的 企业级搜索引擎 。 Lucene本身就可以被认为迄今为⽌性
能最好的⼀款开源搜索引擎⼯具包 ,但是lucene的API相对复杂,需要深厚的
搜索理论。很难集成到实际的应⽤中去。 ES是采⽤java语⾔编写,提供了简
单易⽤的RestFul API,开发者可以使⽤其简单的RestFul API,开发相关的搜
索功能,从⽽避免lucene的复杂性 。
ElasticSearch诞⽣
多年前,⼀个叫做 Shay Banon 的刚结婚不久的失业开发者,由于妻⼦要
去伦敦学习厨师,他便跟着也去了。在他找⼯作的过程中,为了给妻⼦构
建⼀个⻝谱的搜索引擎,他开始构建⼀个早期版本的 Lucene 。
直接基于Lucene⼯作会⽐较困难,所以 Shay 开始抽象 Lucene 代码以便
Java程序员可以在应⽤中添加搜索功能。他发布了他的第⼀个开源项⽬,
叫做“ Compass ”。
后来 Shay 找到⼀份⼯作,这份⼯作处在 ⾼性能和内存数据⽹格的分布式环境
中 ,因此 ⾼性能的、实时的、分布式的搜索引擎 也是理所当然需要的。然后
他决定重写 Compass 库使其成为⼀个独⽴的服务叫做 Elasticsearch 。

第⼀个公开版本出现在 2010年2⽉ ,在那之后Elasticsearch已经成为Github
上 最受欢迎的项⽬之⼀, 代码贡献者超过 300 ⼈。⼀家主营 Elasticsearch
的公司 就此成⽴,他们⼀边提供商业⽀持⼀边开发新功能,不过
Elasticsearch将永远开源 且对所有⼈可⽤。
Shay的妻⼦依旧等待着她的 ⻝谱搜索……
⽬前国内⼤⼚⼏乎⽆⼀不⽤Elasticsearch,阿⾥,腾讯,京东,美团 等等
.....
安装
传统⽅式安装 下载安装包---> 平台 window macos linux(ubuntu)
Docker ⽅式安装 推荐
传统⽅式安装
# 0.# 0.环境准备环境准备
- centos7.x+、ubuntu、windows、macos
- 安装jdk11.0+ 并配置环境变量 jdk8
# 1.# 1.下载下载ESES
- https://www.elastic.co/cn/start
# 2.# 2.安装安装ESES不⽤使⽤不⽤使⽤rootroot⽤户⽤户,,创建普通⽤户创建普通⽤户

# 添加⽤户名
$ useradd chenyn
# 修改密码
$ passwd chenyn
# 普通⽤户登录
# 3.# 3.解压缩解压缩ESES安装包安装包
$ tar -zxvf elasticsearch-7.14.0-linux-x86_64.tar.gz
$ ll
总⽤量 650168
drwxr-xr-x. 10 chenyn chenyn 167 8⽉ 16 11:07
elasticsearch-7.14.0
# 4.# 4.查看查看ESES解压包中⽬录结构解压包中⽬录结构
[chenyn@localhost elasticsearch-7.14.0]$ ll
- bin 启动ES服务脚本⽬录
- config ES配置⽂件的⽬录
- data ES的数据存放⽬录
- jdk ES提供需要指定的jdk⽬录
- lib ES依赖第三⽅库的⽬录
- logs ES的⽇志⽬录
- modules 模块的⽬录
- plugins 插件⽬录

# 5.# 5.启动启动ESES服务服务
[chenyn@localhost ~]$ ./elasticsearch-7.14.0/bin/elasticsearch
- 这个错误时系统jdk版本与es要求jdk版本不⼀致,es默认需要jdk11以上版本,当
前系统使⽤的jdk8,需要从新安装jdk11才⾏!
- 解决⽅案:
1.安装jdk11+ 配置环境变量、
2.ES包中jdk⽬录就是es需要jdk,只需要将这个⽬录配置到ES_JAVA_HOME环境
变即可、
# 6.# 6.配置环境变量配置环境变量
$ vim /etc/profile
- export ES_JAVA_HOME=指定为ES安装⽬录中jdk⽬录
- source /etc/profile
# 7.# 7.从新启动从新启动ESES服务服务
# 8.ES# 8.ES启动默认监听启动默认监听92009200端⼝端⼝,,访问访问92009200
$ curl http://localhost:9200