Elasticsearch学习(2) 基本概念

本文深入介绍了Elasticsearch的基本概念,包括文档、索引、类型(现已被废弃)、映射、集群、节点、分片和分段。详细解释了取消类型的原因以及分片在数据扩展和高可用性中的作用。同时,概述了索引新数据、搜索数据和过滤器的工作流程。最后,探讨了分析数据的过程和相关性运算,如TF-IDF和Boosting。

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

目录

1、Es基本定义

1.1 文档(Document)

1.2 索引(Index)

1.3 类型(Type)

1.4 映射(Mapping)

1.5 集群(Cluster)

1.6 节点(Node)

1.7 分片(Shard)

1.8 分段

2、索引

2.1 索引新数据

2.2 搜索数据

2.4 过滤器

3 分析数据

3.1 发生时机

3.2  过程

3.3 用Api分析文本数据

3.4 内置的分析器

4 相关性运算

4.1 如何打分

4.2 boosting

4.3 function_score

4.5 字段数据(FieldData)

5 聚集

 5.1 度量聚集

5.2 多桶型聚集


1、Es基本定义

1.1 文档(Document)

    Es 是面向文档的,文档是所有可搜索数据的最小单位。它对应关系型数据库中的表里的一条数据。

1.2 索引(Index)

    索引简单来说就是相似结构文档的集合,索引有一个名称,一个索引可以包含很多文档,一个索引就代表了一类类似的或者相同的文档,比如说建立一个商品索引,里面可能就存放了所有的商品数据,也就是所有的商品文档。每一个索引都是自己的 Mapping 定义文件,用来去描述去包含文档字段的类型,分片(Shard)体现的是物理空间的概念,索引中的数据分散在分片上
    在Es 7.0版本以前,我理解索引对应的应该是数据库里的表,表里有一个type字段来定义不同的类型数据。每个类型可以支持多或少的字段。
    但是更多人为了方便理解认为Index 是数据库,每个Type对应的是数据库里的表。但是细想这样不太合理。这个涉及到索引的映射,后面说。

1.3 类型(Type)

    在 7.0 之前,每一个索引是可以设置多个 Types 的,每个 Type 会拥有相同结构的文档,但是在 6.0 开始,Type 已经被废除,在 7.0 开始,一个索引只能创建一个 Type,也就是 _doc。每个索引里都可以有一个或多个 Type,Type 是索引中的一个逻辑数据分类,一个 Type 下的文档,都有相同的字段

        为什么要取消type?
同一个Index下的不同实体(不同type意味着field往往不一样,可称为不同实体)太多,且分布稀疏不均,严重干扰了Lucene压缩文档的能力,所以在彻底抛弃type之后,ES的存储能力将会有所提高。
 
所以ES给type制定了消亡路线:
type在6.x中只能有一个,可自定义。
type在7.x中只能有一个,且只能是_doc。
type在8.x(未来版本)彻底取消,API会大变,以前的<INDEX>/<TYPE>/<DOC>的方式会变成<INDEX>/<DOC>

1.4 映射(Mapping)

     每个索引都可以对字段做类型的定义,这个过程就是映射。映射就相当于数据库中我们去定义字段的类型。

     映射包括了该类型的文档中可能出现的所有字段,并告诉Es如果索引一个文档内的多个字段。

1.5 集群(Cluster)

1.6 节点(Node)

    节点其实就是一个 ES 实例,本质上是一个 Java 进程,一台机器上可以运行多个 ES 进程,但是生产环境一般建议一台机器上只运行一个 ES 实例。

    每一个节点都有自己的名字,节点名称很重要(在执行运维管理操作的时候),可以通过配置文件进行配置,或者启动的时候 -E node.name=node1 指定。每一个节点在启动之后,会分配一个 UID,保存在 data 目录下。

1.7 分片(Shard)

    由于单台机器无法存储大量数据,ES 可以将一个索引中的数据切分为多个分片(Shard),分布在多台服务器上存储。有了分片就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。
    索引与分片的关系,一个 ES 索引包含很多分
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值