ElasticSearch学习笔记一(简介+安装+核心概念)

一、Lucene

 谈到搜索引擎基本都绕不开Lucene,作为一个开源、免费、高性能、纯 Java 编写的全文检索引擎,可以算作是开源领域最好的全文检索工具包。

不过Lucene只是一个工具包,并非完整的搜索引擎。而基于Lucene开发的完整搜索引擎有Solr、ElasticSearch,在分布式和大数据场景下,ElasticSearch更胜一筹。

Lucene主要特点:

  • 简单

  • 跨语言(除了java,还有C++、C#、Python等语言版本)

  • 强大的搜索引擎

  • 索引速度快

  • 索引文件兼容不同平台

二、ElasticSearch

1、简介

ElasticSearch 基于 Java 编写,通过进一步封装 Lucene,将搜索的复杂性屏蔽起来,开发者只需要一套简单的 RESTful API 就可以操作全文检索。

ElasticSearch 在分布式环境下表现优异,支持 PB 级别的结构化或非结构化海量数据处理,这也是它比较受欢迎的原因之一。

ElasticSearch 的主要特点:

  • 分布式文件存储。

  • 实时分析的分布式搜索引擎。

  • 高可拓展性。

  • 可插拔的插件支持。

ElasticSearch 有三大功能:

  • 数据搜集

  • 数据分析

  • 数据存储

2、安装 

2.1、单节点安装

首先在ES官网上下载ElasticSearch,我们这里选择的是7.10版本

Es支持矩阵

将下载的文件解压,解压后的目录含义如下:

目录含义
modules依赖模块目录
lib第三方依赖库
logs输出日志目录
plugins插件目录
bin可执行文件目录
config配置文件目录
data数据存储目录

启动方式:进入到 bin 目录下,windows系统直接执行 elasticsearch.bat 启动即可,看到 started 表示启动成功。

ElasticSearch默认监听端口是9200,浏览器直接访问localhost:9200可以看到节点信息。

其中节点和集群的名字都可以自定义配置,打开 config/elasticsearch.yml 文件,添加以下配置:

cluster.name: amby-es
node.name: master

保存配置文件,重启Es后,刷新localhost:9200即可看到新的自定义节点和集群名字 。

2.2、HEAD工具安装

Elasticsearch-head 插件,可以通过可视化的方式查看集群信息,分别有Chrome浏览器插件安装和下载插件安装两种方式,这里我们选用下载插件安装方式。

首先从GitHub上下载ElasticSearch-head插件包,地址:https://github.com/mobz/elasticsearch-head,可以选择拉取到git,或者直接下载zip压缩包。

下载完成后,进入到ElasticSearch-head目录,首先执行 npm install 命令安装插件(使用 npm 命令需要安装 node.js)。

安装完成后,执行 npm run start 命令,启动插件。看到以下页面表示启动成功:

启动成功后,访问9100端口,页面如下:

注意:如果使用下载插件安装,此时看不到集群数据。原因在于这里通过跨域的方式请求集群数据的,默认情况下,集群不支持跨域,所以这里就看不到集群数据有跨域问题。需要在config/elasticsearch.yml 文件中添加以下配置:

http.cors.enabled: true
http.cors.allow-origin: "*"

 配置完成后,重启 es,此时 head 上就有数据了。

2.3、分布式安装

我们以一主二从为例,master端口为9200,slave端口分别为9201和9202。

首先在master主机的config/elasticsearch.yml文件中添加以下配置:

node.master: true
network.host: 127.0.0.1

另外复制两份es压缩包,分别解压成slave01和slave02,分别在config/elasticsearch.yml文件中添加以下配置:

# 集群名称必须保持一致
cluster.name: amby-es
node.name: slave01
network.host: 127.0.0.1
http.port: 9201
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
# 集群名称必须保持一致
cluster.name: amby-es
node.name: slave02
network.host: 127.0.0.1
http.port: 9202
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]

 启动两台从机,就可以在head上看到集群信息了。

2.4、Kibana安装

Kibana 是一个 Elastic 公司推出的一个针对 es 的分析以及数据可视化平台,可以搜索、查看存放在 es 中的数据。

首先在官网下载Kibana:https://www.elastic.co/cn/kibana

解压后执行运行bin/kibana.bat文件启动,访问localhost:5601查看。因为我们是新安装的es还没有数据,可以选择初始化 es 提供的测试数据,也可以不使用。

注意,如果有修改过es的端口和地址,需要在config/kibana.yml文件中配置。

 

3、核心概念

  1.  集群(Cluster):一个或多个节点组成一个集群,维护共同的数据,一起对外提供服务。集群中所有节点必须要有共同的集群名字,可以在elasticsearc.yml文件中修改cluster.name。在集群有三种状态:绿色(所有分片都能正常工作)、黄色(至少一个副本分片不能正常工作)、红色(集群不能正常工作)。

  2. 节点(Node):集群中的一个服务器就是一个节点,节点中会存储数据,同时参与集群的索引以及搜索功能。将一个节点加入集群,只需要配置集群名即可。

  3. 索引(Index):可以分两种,名词-具有相似特征文档的集合、动词-索引数据以及对数据索引操作。

  4. 类型(Type):类型是索引上的逻辑分类或分区

  5. 文档(document):一个可以被索引的数据单元,例如一个用户的文档、一个产品的文档等等,文档都是 JSON 格式的。

  6. 分片(Shards):索引都是存储在节点上,受限于节点的空间大小以及数据处理能力,需要对索引进行分片。在创建索引的时候,需要指定分片的数量。默认情况下,一个索引会自动创建 1 个分片,并且为每一个分片创建一个副本。

  7. 副本(Replicas):对主分片的备份。

  8. Settings:对索引的定义信息。

  9. Mapping:保存了定义索引字段的存储类型、分词方式、是否存储等信息。

  10. Anzlyzer:字段分词方式的定义。

 

版权声明:

本文仅记录ElasticSearch学习心得,如有侵权请联系删除。
更多内容请访问原创作者:
微信公众号:江南一点雨  æ±åä¸ç¹é¨
B站:https://space.bilibili.com/49484631?from=search&seid=6136072956000981995

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值