ElasticSearch学习随笔之基础介绍

ElasticSearch

1、ElasticSearch学习随笔之基础介绍
2、ElasticSearch学习随笔之简单操作
3、ElasticSearch学习随笔之java api 操作
4、ElasticSearch学习随笔之SpringBoot Starter 操作
5、ElasticSearch学习随笔之嵌套操作
6、ElasticSearch学习随笔之分词算法
7、ElasticSearch学习随笔之高级检索
8、ELK技术栈介绍
9、Logstash部署与使用
10、ElasticSearch 7.x 版本使用 BulkProcessor 实现批量添加数据
11、ElasticSearch 8.x 弃用了 High Level REST Client,移除了 Java Transport Client,推荐使用 Elasticsearch Java API
12、ElasticSearch 8.x 使用 snapshot(快照)进行数据迁移
13、ElasticSearch 8.x 版本如何使用 SearchRequestBuilder 检索
14、ElasticSearch 8.x 使用 High Level Client 以 HTTPS 方式链接,SSL 证书、主机名验证器 各是什么,如何忽略
15、ElasticSearch 8.x 创建父子文档,用Join类型字段以及用has_child、has_parent 检索
16、ElasticSearch如何提高写入效率【面试题,面道既学到】

ElasticSearch,创始人 Shay Banon(谢巴农)
本文主讲 ElasticSearch 基础介绍。



前言

本文主要对ElasticSearch基础进行讲解,认识 ElasticSearch


一、ElasticSearch是什么?

ElasticSearch(简称 ES) 是用 JAVA 开发的当前最流行的开源的企业级搜索引擎。
具有如下特点:实施搜索、快速、稳定、可靠,安装使用方便。
客户端支持:Java, .Net, PHP, Python, Ruby等多种语言。

1.1 ElasticSearch 与 Lucene 的关系

Lucene 是迄今为止性能较好、功能全面的搜索引擎库框架 (库),但是,如果在项目中想直接用 Lucene 框架,则必须用 Java 作为开发语言将 Lucene 集成到应用中,所以,Lucene 具有以下缺点:

  1. 只能在 Java 中使用,以 jar 包的方式集成到项目中。
  2. 创建索引 和 索引搜索的代码复杂,而且随着不同版本变化,代码有差异。
  3. 不支持集群,不能很好的支持大型项目。
  4. 索引数据在同一服务器,占用服务器硬盘,公用空间少。

1.2 ES 解决Lucene使用缺点的最好方案(对比 solr)

虽然 Solr 也是一个全文检索应用,但和 ES 还是有不同的地方。
总结如下

  1. 当单纯的对已有数据进行搜索时,Solr 更快。
  2. 当实施建立索引时,Solr 会产生 io 阻塞,查询性能就会瞬间变差;ES 是准实时的,有明显的优势。
  3. Solr 利用 ZK 进行分布式管理,而 ES 自身带有分布式协调管理器。
  4. Solr 支持更多的数据格式, JSON, XML, CSV,而 ES 仅支持 JSON

请看下面两张图,对已有的静态数据检索是,Solr 要更快(第一张图),但实时建立索引是,Solr 会产生 io 阻塞,查询性能瞬间跌到低谷;而 ES 则是准实时更新索引的,及时在更新数据是也可以提供很快的检索服务(第二张图)。

静态检索
动态检索

二、ES 与 关系型数据库对比理解

关系型数据库ES
Database(数据库)Index(索引库)
Table(表)Type(类型)
Row(行)Document(文档)
Column(列)Field(字段)

三、ES 中的核心概念

3.1 索引 index

索引就是有相似特征的文档的集合, 比如:客户数据,产品数据 索引等。
一个索引由一个名字来标识(必须全部小写字母),相当于关系数据库的库名。
增删改查都要用到索引名称。

3.2 映射 mapping

mapping是处理数据的方式和规则方面做一下限制,确定 Document 里面字段的 数据类型默认值分词器是否被索引是否存储 等等。

3.3 字段 field

相当于关系型数据库的 字段(列)。

3.4 字段类型 type

每一个字段都要对应一个类型,这里是一些基本的数据类型:Text、keyword、byte、string、int、boolean 等。
还有复杂的数据类型:数组、JSON对象嵌套。
ES 还支持地理位置搜索。

3.5 文档 document

文档是可被索引的基础单元,类似 MySQL的一条记录,用 JSON 来表示。

3.6 集群 cluster

集群是由多个节点组织在一起,共同持有整个数据,并一起提供索引和搜索功能。

3.7 节点 node

一个节点就是集群里面的已一台服务器。

3.8 分片和副本 shards & replicas

3.8.1 分片

一个索引可以存储超出单个节点的大量数据,但是没有节点是有足够的磁盘空间的,即便有,单个节点处理搜索请求也太慢,为了解决这些问题,ES 提供了将索引划分成多份,这些份就是 分片

3.8.2 副本

在网络环、云 里面,节点故障是避免不了的,在某个分片或者节点离线的情况下,有个故障转移机制是非常有用并且强烈推荐的。为此,ES 允许把创建分片拷贝成多份,有备无患,这些拷贝出来的就是 副本

好的,ES 基础就介绍到这里吧~~~

总结

例如:ES 作为目前企业级搜索的最佳解决方案,了解完基本内容,马上上手使用起来。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值