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 检索

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
    评论
你好!关于学习Elasticsearch,我可以给你一些指导。Elasticsearch是一个开源的分布式搜索和分析引擎,主要用于快速、实时地存储、搜索和分析大量数据。下面是一些学习Elasticsearch的步骤: 1. 了解基本概念:开始学习Elasticsearch之前,你需要了解一些基本的概念,比如索引(index)、类型(type)、文档(document)、字段(field)等。这将帮助你更好地理解Elasticsearch的工作原理。 2. 安装和配置:根据你的操作系统,你可以从Elasticsearch官方网站下载并安装合适的版本。安装完成后,你需要进行适当的配置,如设置集群名称、分配内存等。 3. 学习REST API:Elasticsearch提供了丰富的REST API,用于与其进行交互。了解如何使用这些API来索引、搜索和删除数据是学习Elasticsearch的重要一步。 4. 索引和搜索数据:学习如何创建索引、添加文档以及执行搜索操作是使用Elasticsearch的关键。掌握查询语法、过滤器、聚合操作等功能可以帮助你更有效地使用Elasticsearch。 5. 数据建模和分析:学习如何设计合适的数据模型和映射,以及如何使用Elasticsearch进行数据分析和可视化是提高你的技能的重要一步。 6. 扩展和优化:学习如何在生产环境中扩展和优化Elasticsearch集群是非常重要的。了解如何分片、复制、调优性能等将帮助你更好地管理和维护你的数据。 7. 学习资源:除了官方文档,还有很多优秀的学习资源可供参考,如书籍、教程和在线课程等。利用这些资源可以更系统地学习和掌握Elasticsearch。 希望这些步骤能对你学习Elasticsearch有所帮助!如果有任何问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值