1.elasticsearch基本概念

本文介绍了Elasticsearch中的关键概念,包括集群、节点、索引、类型、分片、主从分片、映射、文档、字段、项、文本等,详细解释了这些组件如何共同作用以提供高效的数据索引和查询服务。

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

http://blog.youkuaiyun.com/zhufenglonglove/article/details/51422947

http://blog.youkuaiyun.com/stark_summer/article/details/48782953

http://www.jianshu.com/p/492d4311ed04

cluster(集群)

集群包含了一个或者多个拥有相同集群名称的节点。每个集群有一个主节点,这是由集群自动选择出来的,并且在当前主节点挂掉时被其他节点取代。

node(节点)

节点就是一个ES的运行实例,属于一个集群。节点启动时会使用单播(多播)来发现已有的拥有相同名称的集群,并试着加入那个集群。

ES节点调优与脑裂

http://www.cnblogs.com/richaaaard/p/5231748.html

http://blog.youkuaiyun.com/wang_zhenwei/article/details/50515459

index(索引)

索引只是一个把一个或多个分片与副本分组在一起的逻辑空间。

索引(index)如同关系数据库中的数据库。索引有一个或多个类型(type)映射。索引是一个逻辑命名空间,该空间可以对应于一个或者多个主shard,并且有零个或多个从shard。

type(类型)

在Elasticsearch中,一个索引对象可以存储很多不同用途的对象。例如,一个博客应用程序可以保存文章和评论。

类型如同关系数据库中的表。每个类型有一个字段的列表,该列表可以被指定为该类型的文档。映射则定义了文档的每个字段将如何被分析。

文档类型让我们轻易地区分单个索引中的不同对象。每个文档可以有不同的结构

shard(分片)

当有大量的文档时,由于内存的限制、硬盘能力、处理能力不足、无法足够快地响应客户端请求等,一个节点可能不够。在这种情况下,数据可以分为较小的称为分片(shard)的部分(其中每个分片都是一个独立的Apache Lucene索引)。每个分片可以放在不同的服务器上,因此,数据可以在集群的节点中传播。

当你查询的索引分布在多个分片上时,Elasticsearch会把查询发送给每个相关的分片,并将结果合并在一起,而应用程序并不知道分片的存在。此外,多个分片可以加快索引。

primary shard、replica shard(主从分片)

为了提高查询吞吐量或实现高可用性,可以使用分片副本。副本(replica)只是一个分片的精确复制,每个分片可以有零个或多个副本。换句话说,Elasticsearch可以有许多相同的分片,其中之一被自动选择去更改索引操作。这种特殊的分片称为主分片(primary shard),其余称为副本分片(replica shard)。在主分片丢失时,例如该分片数据所在服务器不可用,集群将副本提升为新的主分片

ES分片交互过程分析https://my.oschina.net/galenz/blog/422189

mapping(映射)

用于定义索引结构,每个索引都有一个映射,映射定义了索引中每个类型,加上一堆索引范围内的设置。映射可以显式定义,或者会在文档被索引时自动产生

document(文档)

存储在Elasticsearch中的主要实体叫文档(document)。文档类似于关系数据库中的表中的行。每个文档被存放在一个索引下面,拥有类型和ID。被索引的原始JSON文档会被存放在_source字段中。

文档由多个字段组成,相同字段必须有相同类型,每个字段可能多次出现在一个文档里,这样的字段叫多值字段(multivalued)。

从客户端的角度看,文档是一个JSON对象。每个文档存储在一个索引中并有一个Elasticsearch自动生成的唯一标识符和文档类型。文档需要有对应文档类型的唯一标识符,这意味着在一个索引中,两个不同类型的文档可以有相同的唯一标识符。

id(ID)

文档的ID标识了一个文档。文档的index/type/id肯定是唯一的。如果没有ID被提供,那么它会被自动生成

field(字段)

文档由多个字段组成,每个字段有类型,如文本、数值、日期等。字段类型也可以是复杂类型,一个字段包含其他子文档或者数组。字段类型在Elasticsearch中很重要,因为它给出了各种操作(如分析或排序)如何被执行的信息。幸好,这可以自动确定,然而,我们仍然建议使用映射。与关系型数据库不同,文档不需要有固定的结构,每个文档可以有不同的字段,此外,在程序开发期间,不必确定有哪些字段。当然,可以用模式强行规定文档结构。

term(项)

项是在ES中被索引的确切的值。项foo、Foo、FOO不是等价的。项(确切值)可以通过term查询而被搜索到。请查看文本(term)和分析(analysis)。

text(文本)

文本(或者全文)是一般的非结构化文本。文本默认地会被分析成项(term),项是直接存放在索引中的。文本的字段需要在索引时被分析,从而可以作为全文可搜索的,而在全文查询中的关键词(keyword)必须在搜索时进行分析来产生(和检索)在索引时生成的同样的项(term)。

头哥(Hutool)是一个Java工具包,它包含了一系列方便开发者使用的工具类,但"头哥第1关:Elasticsearch基本概念"这个表述可能并不准确。Elasticsearch是一个开源的分布式搜索引擎,它主要用于全文搜索和分析。如果你是指Hutool教程或某个特定的入门任务中关于Elasticsearch的内容,我可以为你概述几个基本概念1. **文档**(Document): 在Elasticsearch中,数据的基本单元是文档,它类似于关系数据库中的行。每个文档都有一个唯一的ID,并存储在一个索引(Index)里。 2. **索引**(Index): 是Elasticsearch中用于存储文档的容器,类似数据库表。你可以根据需要创建多个索引,每个索引可以包含相关的文档。 3. **字段**(Field): 文档中的每个属性都是一个字段,可以设置为各种数据类型,如字符串、数字、日期等。字段还可以进行分析处理,以便于搜索。 4. **查询**(Query): 用户通过查询来检索数据,Elasticsearch支持多种查询类型,如简单匹配、复杂查询(如布尔查询、范围查询)和聚合查询。 5. **索引操作**:常见的操作包括创建索引、添加文档(index)、更新文档(update)和删除文档(delete)。 6. **分片和复制**(Sharding and Replication): Elasticsearch索引分成多个小的、独立的部分(分片),并可以在多个节点上复制这些分片,以提高数据的可用性和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值