ElasticSearch基础

Elasticsearch是一个基于Lucene的分布式全文搜索引擎,它允许快速存储、搜索和分析大量数据。倒排索引是其核心,提供高效的全文检索。每个文档由多个字段组成,字段可以被索引。索引被划分为shard和replica,以实现横向扩展和高可用性。Elasticsearch中的index类似数据库,type类似表,document代表记录,field是基本单位,而shard和replica确保数据分布和冗余。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ElasticSearch基础:java

  • 什么是Elasticsearch:类似于查字典
  • Elasticsearch 是基于 Lucene 搜索引擎为核心构建 的Restful 风格 分布式 全文搜索引擎,每个字段都可以使索引并可以被搜索,可以快速存储、搜索、分析大量的数据。

  • 全文检索是指对每一个词建立一个索引,指明该词在文章中出现的次数和位置。

  • 当查询时,根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。

  • - [x] 什么是倒排索引:倒排索引使用的是词来作为索引关键字,同时记录了哪些文档中有这个词。
  • 在搜索引擎中,每个文档都有一个对应的文档 ID,文档内容被表示为这些关键词的集合。

  • 倒排索引就是 关键词到文档 ID 的映射,每个关键词都对应着很多的的文件,这些文件中都出现了这个关键词。
    有了倒排索引,搜索引擎可以很方便地响应用户的查询。

  • 为什么不使用B+Tree?
  • 全文索引的文本字段通常会比较长,索引值本身会占用较大空间,从而会加大 B+ 树的深度,影响查询效率。
  • 全文索引往往需要全文搜索,不遵循最左匹配原则,使用 B+ 树可能导致索引失效。
  • 要注意倒排索引的两个重要细节:
  • 倒排索引中的所有词项对应一个或多个文档

  • 倒排索引中的词项 根据字典顺序升序排列

  • Elasticsearch 的基本概念:
  • index 索引: 索引类似于mysql 中的数据库,Elasticesearch 中的索引是存在数据的地方,包含了一堆有相似结构的文档数据。
  • type 类型: 类型是用来定义数据结构,可以认为是 mysql 中的一张表,type 是 index 中的一个逻辑数据分类
  • document 文档: 类似于 MySQL 中的一行,不同之处在于 ES 中的每个文档可以有不同的字段,但是对于通用字段应该具有相同的数据类型,
    文档是es中的最小数据单元,可以认为一个文档就是一条记录。
  • Field 字段: Field是Elasticsearch的最小单位,一个document里面有多个field
  • shard 分片: 单台机器无法存储大量数据,es可以将一个索引中的数据切分为多个shard,分布在多台服务器上存储。
    有了shard就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。
  • replica 副本: 任何一个服务器随时可能故障或宕机,此时 shard 可能会丢失,因此可以为每个 shard 创建多个 replica 副本。
    replica可以在shard故障时提供备用服务,保证数据不丢失,多个replica还可以提升搜索操作的吞吐量和性能。primary shard(建立索引时一次设置,不能修改,默认5个),replica shard(随时修改数量,默认1个),默认每个索引10个 shard,5个primary shard,5个replica shard,最小的高可用配置,是2台服务器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值