Elasticsearch 介绍与安装(1)

x33g5p2x  于2021-08-23 转载在 Java  
字(1.7k)|赞(0)|评价(0)|浏览(457)

一 Elasticsearch 介绍与安装

知识追寻者抽空学了 Elasticsearch 的基本使用,希望本套教程能够帮助到读者们!

1.1 Elasticsearch是什么

Elasticsearch 是一个分布式,Restful 风格的 搜索引擎,是 Elastic Stack 的核心,它能够实现海量数据的存储,搜索,分析;The Elastic Stack, 包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化;有关于全文搜索引擎的概念读者可以自行百科了解!

1.2 Elasticsearch 能解决什么问题

Elasticsearch 能够灵活的处理数据;比如如下示例中

  • 在网站上添加搜索框;
  • 存储分析日志,指标,和安全事件数据;
  • 使用机器学习自动建模数据;
  • 使用 Elasticsearch 作为存储引擎实现业务自动化

1.3 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可执行脚本目录
configelasticserch.yml配置目录,如集群配置、jvm 配置等。
jdk内置JDK目录
datapath.data数据持久化文件
lib依赖的类库
logspath.log日志文件
modules包含的 ES 模块
plugins包含已安装的插件

这边以window 版本演示为例

解压后,进入bin文件目录,点击elasticsearch.bat文件启动ES服务

如下标志 表示启动成功

在启动后其实有2个端口被Elasticsearch所占用,9300端口为Elasticsearch集群组件的通信端口,9200端口为浏览器访问端口

打开postman 访问如下地址

localhost:9200

结果如下

1.4 启动失败问题解决

  1. elasticsearch 7 版本以上需要JDK1.8 环节以上支持,如果读者的JDK环境过低会导致运行失败;升级jdk 版本即可!
  2. 如果启动窗口闪退,提示空间不足等信息;则需要提示容量配置,打开 config/jvm.options 配置文件, 7 版本 默认 容量为 1g ;可以提示 容量,但要保证 XmxXms 数值设置相同;
-Xms1g
-Xmx1g

二ES 数据结构

2.1 文档

Elasticsearch是面向文档型数据库,一条数据就是一个文档,所以ES搜索的最小单位为文档;文档中包含字段;

这就像MYSQL 的关系表; 文档为行,字段为字段

2.2 类型

Elasticsearch 中的文档都有与之对应的类型;可以这样说,类型是文档的容器,起到文档的归类作用;简单的理解类型就是MYSQL的表

2.3 索引

Elasticsearch 将它的数据存储在索引中;可以简单理解 索引就是MYSQL 中的数据库

2.4 映射

映射更像一种规则的对应关系;比如我想输入的文本被分割为词条,哪些词条应该被过滤;我想指定字段的类型是文本还是关键字;这就是映射起到的作用;简单来说映射就是MYSQL中字段的类型

2.5 节点,集群和分片

当启动一个ES实例时就是一个节点;大多数情况下一个节点就足够应付开发的应用;如果想要提高应用的稳定性,容错则需要搭建集群;一个集群中包含了多个节点;

ES的底层是lucene 实现,ES需要将 的数据分配到lucene的索引上;在底层,这些lucene就称为为分片,其实一个分片就是一个目录中的文件;ES会自动的进行分片处理,无需我们关心;默认情况下一个索引由5个分片组成

相关文章