`
qindongliang1922
  • 浏览: 2182987 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117500
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125880
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59875
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71280
社区版块
存档分类
最新评论

ElasticSerach基本概念

    博客分类:
  • ELK
阅读更多

基本概念:

学习es必须得了解一些它的基本概念,对学会学好es起着至关重要的作用。


近实时:

es是一个近实时的搜索引擎,这意味着它会有轻微的延迟(正常情况上是1秒),从你添加一个文档知道它
能被搜索出来,这是由它的底层框架Lucene决定的。

集群:
一个集群通常由1台或多台节点组成,它们一起协作,横跨所有的节点,提供了统一的索引和搜索能力
一个集群必须有一个唯一的名字,默认是elasticsearch,这个名字标识是重要的,因为一个节点只能在一个集群中服务
在他们启动的时候,会通过名字,来找到并加入集群。

所以,务必确保你不要重复使用同一个集群名字,不然的话,你有可能会发现你的节点加入了一个错误的集群中,
所以你应该在不同的环境使用,使用不同的配置文件,这一点与maven里面的filter的功能是非常相似的,假如我有3套环境,
开发,测试,线上,那么我就可以命名dev,test,product三个配置文件来区分,在不同的环境下,使用不用的参数进行编译

一个节点,最好只为一个集群服务,虽然也可以配置多个独立的集群,通过集群名隔离,但是从性能上来说,一个节点只为一个
集群服务通常是最优的方案。


节点:

一个节点通常是一个集群中的一部分, 它可以存储你的数据,也在集中参与,集群的索引和搜索能力,像集群一样,节点也是有名字的
,默认情况下如果不设置,那么es将会为随机生成一个名字,在它启动的时候,当然你可以指定的它的名字,如果你不像使用默认随机
生成的名字,这个名字也是重要的,它对于管理你的节点与网络时,非常方便,通过你定义的名字。

一个节点可以通过配置集群名,来决定它究竟为那个集群服务,默认情况下,如果你不配置这个名字,而直接启动了多个服务节点,那么他们会
自动组成一个名为elasticsearch的集群服务,前提是你的网络支持多播自动发现,当然这种模式,不建议在生产环境上使用,但通过指定几个master加上单播通信是比较好的一个运行方式。

索引:

一份索引是一系列文档doc的集合,通常情况下他们具有逻辑上相似的特征,比如,你有一个索引存的是客户数据
另一份索引存的是商品类目数据,还有一个索引存的是订单数据,一个索引也能只能有一个唯一的名字标识,而且
索引名必须是小写的,通常会通过索引名来完成对索引的增删改查操作,在单个集群中,你可以定义很多你想要的索引。

类型:
在索引的内部,你可以定义一个或多个类型,一个类型是逻辑上的类目或者分区在你的索引中,它的语义
对使用方来说是透明完整的,大多数情况下,一个类型定义组成由多个字段,例如假设你正在运行一个
博客平台的来存储你所有的数据,在单个索引中,在这个索引中,你可能定义一个类型是用户数据,另一个类型是
博客数据,最后一个是评论数据。

文档:
一个doc是基本的信息单元,它可以被索引,例如你可以有一个单独客户doc,商品doc和订单doc,它由json组成,
所以具备了很强的扩平台传输数据能力,这也为es支持多种语言客户端带来了方便。


分片和副本:

一个索引可能存储一个巨大数量的数据而远远超出了单台机器的上限,例如你有10亿的数据,它的索引大小是
1TB,可能你的单个磁盘已经容量不下,或者你可能搜索性能非常低下,在单台机器上,为了解决这个问题,
es提供了切分大索引为多个分片的能力,这就是分而治之的思想,当你创建索引时,你可以定义,分片的数量,
每个分片相对于它自己而言都是一份完成的索引,它可以被放在集群中任意的节点上。


分片有两个比较重要的原因:
它允许你水平扩展你的集群服务
它允许你分布式并行的操作横跨多台的机器,以此来提高性能

至于它如何分布式的查询多个节点的数据,在归并返回结果,对用户来说是透明的,用户是感觉不到它的背后发生了
多么复杂的交互和查询。

在云计算的环境中,容错是非常重要的,任何不可抗拒的原因都有可能造成你的机器宕机或挂掉,为了解决这个
问题es提供了一个或多个副本分片来提供索引的容错性,

副本也有两个比较重要的原因
它提供高可靠的能力,在shard突然挂掉的时候,基于这个原因,我们建议将副本数据和主分片的数据不能放在
同一个机器上

它也提供了主从模式的搜索能力,大大提高了系统的并发搜索能力


总结一下:

每个索引都可以被切分成多个分片,一个分片也可以有0到多个副本,一个配置了副本策略,每个
索引都有一个主分片,和一个副本分片,副本分片的数据是拷贝主分片的数据,他们的数量在索引创建之前
可能配置,需要注意的是,你可以随时改变副本的数量,但是不能随便改变主分片的数量。



默认情况下,每个索引在es有5个主分片,和一个1副本这意味着,你至少有2台机器在你的集群中,否则
你的集群可以使用,但是会出现黄色警告,告诉你有未被分配的分片,这样一来每份索引你一共有10个shard
来提供服务。


每个es分片其实是一个lucene索引,每个分片最大的索引数量是Integer.MaxValue,所以你可以监控shard的大小来
判断这个分片是否快达到单shard承受能力的上限。

下面看下es索引与传统数据库的概念映射:



最后欢迎大家扫码关注微信公众号:我是攻城师(woshigcs),我们一起学习,进步和交流!(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!


1
2
分享到:
评论

相关推荐

    elasticserach _test.zip

    3. **索引操作**:"elasticserach_test.txt"可能包含一系列JSON格式的文档,这些是Elasticsearch处理的基本单元。你可以使用Elasticsearch的`PUT`或`POST`请求将这些文档索引进一个特定的索引中,如`PUT /my_index/_...

    ElasticSerach学习项目程序

    ElasticSerach学习项目程序 1、文档采用黑马程序员公开课ElasticSearch7的资料进行开发 2、对原有的RsetAPI进行了升级,采用ElasticSearch8的链式API 3、ElasticSearch的文档非常丰富,阅读起来通俗易懂,还是以官方...

    ElasticSerach7入门与进阶实战学习笔记

    ElasticSerach7入门与进阶实战学习笔记

    Elasticserach八大经典应用.zip

    **Elasticsearch八大经典应用详解** Elasticsearch(ES)是一种强大的开源全文搜索引擎,广泛应用于数据分析、日志分析、搜索引擎构建、推荐系统等多个领域。它以其高效、灵活和可扩展性著称,使得处理海量数据变得...

    elasticserach7.3.0-ik分词器-head-kibnan-serarch全部

    elasticserach7.3.0-ik分词器-head-kibnan-serarch全部包含了elasticsearc7.3.0、elasticsearch-ik分词器、kibnan和elasticsearch-head浏览器插件。全部将其放入到了elasticserach7.3.0-ik分词器-head-kibnan-...

    Elasticserach全观测技术解析与应用.rar

    **Elasticsearch全观测技术解析与应用** 在数字化转型的时代,数据已经成为企业的重要资产,而高效的数据管理和分析工具则是挖掘这些资产价值的关键。Elasticsearch作为一款强大的分布式搜索引擎,广泛应用于日志...

    Elasticsearch5.2.0 + Kibana5.2.0

    **Elasticsearch 5.2.0 和 Kibana 5.2.0 知识点详解** **一、Elasticsearch 概述** Elasticsearch 是一款基于 Lucene 的开源分布式全文搜索引擎,具备实时分析、高可扩展性和高可用性。在5.2.0版本中,它继续优化了...

    elasticsearch-7.5.1-windows64.rar为什么我设置的是2积分,到最后显示要十几分呢?

    Elasticsearch是一个强大的开源搜索引擎和数据分析工具,广泛应用于大数据处理和实时分析场景。在Windows操作系统上,用户可以下载...不过,通过理解Elasticsearch的基本概念和关键配置,可以更好地管理和优化其性能。

    elasticserach 7.17.4版本的中文 IK分词器

    **Elasticsearch 7.17.4 版本中的中文 IK 分词器** Elasticsearch 是一个流行的、开源的全文搜索引擎,它基于 Lucene 库,并提供了分布式、实时、可扩展的搜索和分析功能。在处理中文文本时,一个合适的分词器是至...

    Elasticserach2.0与已编译过的anaysis-ik分词插件

    **Elasticsearch 2.0 与 Analysis-IK 分词插件详解** Elasticsearch 是一个功能强大的开源全文搜索引擎,广泛应用于数据检索、数据分析和实时分析等场景。它基于 Lucene 库,提供了分布式、RESTful 风格的搜索和...

    elasticsearch-sql-5.4.3.0

    **Elasticsearch SQL 插件详解** Elasticsearch 是一个高度可扩展的开源全文搜索和分析引擎,广泛用于大数据检索、日志分析、实时监控等多个领域。它基于 Lucene 库构建,提供分布式、近实时的搜索和分析功能。...

    elasticsearch6.6.1这个是源码,另一个资源是发行包

    **Elasticsearch 6.6.1 源码分析** Elasticsearch 是一个流行的、开源的全文搜索引擎,被广泛用于大数据分析和实时搜索场景。版本6.6.1是其发展过程中的一个重要里程碑,提供了丰富的功能和优化。...

    Django集成搜索引擎Elasticserach的方法示例

    文本字段(indexed=True表示会被建立索引) def get_model(self): """返回建立索引的模型类""" return SKU def index_queryset(self, using=None): """返回要建立索引的数据查询集""" return self.get_model()....

    ongr-symfony-elasticsearch-documentation:ongr symfony elasticserach文档

    ongr symfony elasticserach文档 本指南介绍了如何在Symfony项目上设置elasticsearch和其他ONGR捆绑软件。 这允许使用使用Elasticsearch NoSQL数据库的快速搜索。 这包括: 初学者 创建新的symfony项目 安装ONGR ...

    elasticsearch-test.zip

    《Elasticsearch实战:基于Java的深度探索》 在当今大数据时代,Elasticsearch作为一款强大的开源全文搜索引擎,因其高效、灵活和可扩展性而备受青睐。本篇将围绕"elasticsearch-test.zip"这个压缩包文件,深入探讨...

    CentOS7.4+HDP+Ambari+consul+Elasticsearch安装部署文档.rar

    CentOS7.4+HDP+Ambari+consul+Elasticsearch 安装部署文档

    elasticsearch-analysis-ik-6.4.1.zip

    “es 热加载 elasticsearch elasticserach-ik ik分词器”的标签进一步强调了这个特性,其中“热加载”意味着在不中断服务的情况下,能够动态地添加或更新词库,提高系统的灵活性和响应性。 压缩包中的文件列表包括...

    elasticsearch-6.8.3-API文档-中文版.zip

    赠送jar包:elasticsearch-6.8.3.jar; 赠送原API文档:elasticsearch-6.8.3-javadoc.jar; 赠送源代码:elasticsearch-6.8.3-sources.jar; 赠送Maven依赖信息文件:elasticsearch-6.8.3.pom;...

    ebatis 是一个简单方便上手的声明式 Elasticsearch ORM 框架

    ebatis优雅地帮你隔离业务对Elasticserach底层驱动接口的直接调用,你不再需要自己手动去构建繁琐DSL 语句。同时,当升级Elastisearch版本的时候,业务可以完全不用关心底层接口的变动,平滑升级。目前,支持...

Global site tag (gtag.js) - Google Analytics