ElasticSearch学习笔记

1. 什么是ElasticSearch

ElasticSearch是一个开源的基于 RESTful 的分布式搜索和分析引擎

日常中见到的各个软件搜索界面基本上都基于ElasticSearch,如淘宝、京东、美团等,他可以根据关键字和空间位置进行分析搜索

2. 为什么要使用ElasticSearch

2.1 ElasticSearch与其他数据库的区别

2.1.1 传统关系型数据库的缺点:
  1. 传统关系型数据库在数据量过大的情况下(PB级别)查询效率低下,模糊匹配的过程中可能导致全表扫描

  2. MySQL全文索引不支持分词器

2.1.2 传统关系型数据库的优点:
  1. 数据一致性较好,易于处理事务

  2. 数据更新的开销较好

  3. 可以进行Join等复杂查询

2.1.3 ElasticSearch的优势:
  1. 适合在海量数据(PB级)场景下快速搜索

  2. 可拓展性强,天生适合分布式

  3. 可支持全文搜索

  4. 支持多种数据类型,ElasticSearch可以支持多种数据类型,比如文本、数字、日期、地理位置等

  5. 易于使用和继承,因为ElasticSearch基于 REST API

2.1.4 ElasticSearch的缺点:
  1. 学习曲线较陡峭

  2. 硬件要求较高,需要大量存储空间和内存

  3. 由于是分布式系统,可能存在数据一致性问题

2.2 ElasticSearch的数据结构及架构

2.2.1 ElasticSearch的数据结构
  1. Index(索引):定义了一个类型的数据,一个索引中的数据特征较为相近,可以将Index理解为MySQL当中的数据库中的表

  2. Type(字段类型):定义数据结构,ES 7.0 之后一个索引只能创建一个Type,8.0之后被完全删除,因为在MySQL中不同表的相同的列是不会相互关联的,但在ES当中不是如此,因此在8.0之后被弃用,Index从类似于MySQL数据库的地位转变为更类似于表的地位

  3. Document(文档):保存最终数据,一个文档就等价于MySQL中的一行数据,是ES中最小的数据单元

  4. Mapping(映射):定义Index的结构,类似于MySQL中定义表结构

  5. Field(字段):定义了一个Index当中某种数据的某个参数,类似于MySQL当中的某个表的某一列

  6. Shard(分片):ES 可以将一个Index分割成多个Shard类似于数据库中的横向分表,这样可以提高整体的性能和吞吐量

  7. replica(副本):一种容灾机制,对分片进行备份,防止丢失

  8. Node(节点):一台 ES 服务器就是一个节点

  9. Cluster(集群):多个Node组成了一个集群

  10. DSL(查询语言):基于JSON的查询语言,类似于SQL语句

ESMySQL
Index(索引)Table(表)
Document(文档)Row(行数据)
Field(字段)Column(列)
Mapping(映射)Schema(约束)
2.2.2 架构图

集群样式

3. 倒排索引

倒排索引也叫做反向索引,可以用于提高检索速度的数据结构,缺点是对硬件的要求较高。

其核心点是通过分词器将文档分成多个词条,然后将文档的ID与关键词相关联,这样词条将会关联一个列表,列表中存放了存在该词条的文档ID,再将词条通过字典二叉树的格式放在内存中。在查询的时候首先在内存中找到词条,再更具关键词找到相关文档ID。

  • 词条(Term):对文档数据或用户搜索内容,利用分词器得到多个有具体含义的词语
  • 词典(Term Dictionary):Term的集合

倒排索引架构(图片来源:https://segmentfault.com/a/1190000037658997)

elasticsearch 学习笔记包括以下内容: 一、Elasticsearch概述: - Elasticsearch是一种开源的分布式搜索和分析引擎,可以用于快速搜索、分析和存储大量的结构化和非结构化数据。 - Elasticsearch与Solr相比有一些区别,包括用户、开发和贡献者社区的规模和成熟度等方面。 二、Elasticsearch安装: 1. 下载Elasticsearch,可以从官方网站或华为云镜像下载。 2. 安装Elasticsearch。 三、安装head插件: - head插件是一个可视化的管理界面,可以方便地管理和监控Elasticsearch集群。 四、安装Kibana: 1. Kibana是一个开源的数据可视化工具,用于展示和分析Elasticsearch中的数据。 2. 下载Kibana并安装。 3. 启动Kibana并进行访问测试。 4. 可选的汉化操作。 五、ES核心概念理解: - 学习ES的核心概念,包括索引、文档、映射、查询等。 以上是elasticsearch学习笔记的主要内容,希望对你有帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Elasticsearch 学习笔记(上)](https://blog.csdn.net/m0_52691962/article/details/127064350)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值