知识追寻者抽空学了 Elasticsearch 的基本使用,希望本套教程能够帮助到读者们!
Elasticsearch 是一个分布式,Restful 风格的 搜索引擎,是 Elastic Stack 的核心,它能够实现海量数据的存储,搜索,分析;The Elastic Stack, 包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化;有关于全文搜索引擎的概念读者可以自行百科了解!
Elasticsearch 能够灵活的处理数据;比如如下示例中
Elasticsearch的官方地址: https://www.elastic.co/cn/downloads/?elektra=home&storm=hero
官方下载地址: https://www.elastic.co/cn/downloads/elasticsearch
这边我们下载的版本是 7版本以上,因为 7 版本的 Elasticsearch 内置了JDK,并且要求版本为JDK8以上,技术上也成熟,官方目前的文档版本也是7.12;
下载完成,如果是window版本,直接解压安装包即可;如果是unix版本,则需要解压命令
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.
解压后目录如下
各个目录的大概含义如下
目录 | 重要文件 | 描述 |
---|---|---|
bin | 可执行脚本目录 | |
config | elasticserch.yml | 配置目录,如集群配置、jvm 配置等。 |
jdk | 内置JDK目录 | |
data | path.data | 数据持久化文件 |
lib | 依赖的类库 | |
logs | path.log | 日志文件 |
modules | 包含的 ES 模块 | |
plugins | 包含已安装的插件 |
这边以window 版本演示为例
解压后,进入bin文件目录,点击elasticsearch.bat文件启动ES服务
如下标志 表示启动成功
在启动后其实有2个端口被Elasticsearch所占用,9300端口为Elasticsearch集群组件的通信端口,9200端口为浏览器访问端口
打开postman 访问如下地址
localhost:9200
结果如下
config/jvm.options
配置文件, 7 版本 默认 容量为 1g ;可以提示 容量,但要保证 Xmx
和Xms
数值设置相同;-Xms1g
-Xmx1g
Elasticsearch是面向文档型数据库,一条数据就是一个文档,所以ES搜索的最小单位为文档;文档中包含字段;
这就像MYSQL 的关系表; 文档为行,字段为字段;
Elasticsearch 中的文档都有与之对应的类型;可以这样说,类型是文档的容器,起到文档的归类作用;简单的理解类型就是MYSQL的表;
Elasticsearch 将它的数据存储在索引中;可以简单理解 索引就是MYSQL 中的数据库;
映射更像一种规则的对应关系;比如我想输入的文本被分割为词条,哪些词条应该被过滤;我想指定字段的类型是文本还是关键字;这就是映射起到的作用;简单来说映射就是MYSQL中字段的类型;
当启动一个ES实例时就是一个节点;大多数情况下一个节点就足够应付开发的应用;如果想要提高应用的稳定性,容错则需要搭建集群;一个集群中包含了多个节点;
ES的底层是lucene 实现,ES需要将 的数据分配到lucene的索引上;在底层,这些lucene就称为为分片,其实一个分片就是一个目录中的文件;ES会自动的进行分片处理,无需我们关心;默认情况下一个索引由5个分片组成;