ElasticSearch系列一:ElasticSearch基本概念

1.ElasticSearch是什么,有什么特点,为什么要用ElasticSearch?mysql用的好好为什么要加一个ElasticSearch呢?

   Elasticsearch是用Java开发并且是当前最流行的开源的企业级搜索引擎。具有实时搜索,稳定,可靠,快速,安装使用方便等特点。 当我们模糊收索海量数据时,并且需要对检索结果进行指定排序,这些mysql根本做不到,但是ElasticSearch可以做到。

2.为什么是ElasticSearch而不是Solr ?

   ElasticSearch与Solr的比较:        

        二者安装都很简单。

1、Elasticsearch 自身带有分布式协调管理功能,Solr 需要利用 Zookeeper 来进行分布式管理。

2、Elasticsearch 仅支持json文件格式,Solr 支持JSON、XML、CSV。

3、Elasticsearch 处理实时搜索应用时效率要高于Solr, 但在传统的搜索应用中表现不如 solr。

3.Elasticsearch 与关系数据库的关系?

   Elasticsearch: index(索引)        type(类型)     document(文档)             field(字段)

   关系数据库:    database(库)      table(表)               row(行)                   column(列)

   以上关系一一对应。

4.Elasticsearch的核心概念有哪些?

   4.1  索引 index 

        一个索引其实就是文档的集合,再说的露骨一点其内容就是一个json数组。必须全部是小写字母可以有特殊字符和数字。当我们需要对文档进行索引、搜索、更新和删除的时候都需要用到这个名字。

    4.2  映射 mapping

        设置字段的数据类型、默认值、分词器、是否被索引等等,可以在创建索引时定义,也可以由Elasticsearch自己默认生成。

    4.3  字段 Field

        相当于是数据表的字段|列。

    4.4  字段类型 Type

        每一个字段都应该有一个对应的类型,例如:Text、Keyword、Byte等。

    4.5  文档 document

        可被索引的基础信息单元,类似一条记录。文档以JSON格式来表示.。

     4.6  集群 cluster

        由多个节点组织在一起,共同持有整个的数据,并一起提供索引和搜索功能。集群可以拥有任意多个节点(最好时基数个)。而且,当前网络中没有运行任何Elasticsearch节点时启动一个节点,会默认创建并加入一个叫做“elasticsearch”的集群。

     4.7  节点 node

        一个节点是集群中的一个服务器,它存储数据,参与集群的索引和搜索功能,节点可以通过配置集群名称的方式来加入一个指定的集群。默认情况下,每个节点都会被安排加入到一个叫做“elasticsearch”的集群中,如果在网络中启动了若干个节点,它们能够相互发现彼此,此时又没有指定具体的集群名,那它们会自动地形成并加入到一个叫做“elasticsearch”的集群中。

     4.8  分片和副本 shards&replicas

        4.8.1  分片

  • 一个索引可以存储超出单个结点硬件限制的大量数据。比如,一个具有10亿文档的索引占据1TB的磁盘空间,而任一节点都没有这样大的磁盘空间,或者单个节点处理搜索请求,响应太慢。
  • 为了解决这个问题,Elasticsearch提供了将索引划分成多份的能力,这些份就叫做分片
  • 当创建一个索引的时候,可以指定你想要的分片的数量,每个分片本身也是一个功能完善并且独立的“索引”,这个“索引”可以被放置到集群中的任何节点上。
  • 分片很重要,主要有两方面的原因

           1. 允许水平分割/扩展你的内容容量

           2.允许在分片之上进行分布式的、并行的操作,进而提高性能/吞吐量

  • 至于一个分片怎样分布,它的文档怎样聚合回搜索请求,是完全由Elasticsearch管理的,对于作为用户来说,这些都是透明的。
  • 注意:分片一但创建就不能修改。

        

        4.8.2  副本

  • Elasticsearch允许你创建分片的一份或多份拷贝,这些拷贝叫做副本分片,或者直接叫副本
  • 副本之所以重要,有两个主要原因:

        1. 在分片/节点失败的情况下,提供了高可用性。

            注意:到复制分片从不与原/主要(original/primary)分片置于同一节点上是非常重要的

        2. 扩展搜索量/吞吐量,因为搜索可以在所有的副本上并行运行。分片和副本的数量可以在索引创建的时候指定,创建后,可以动态地改变副本的数量。

        

    

     

        

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
头哥(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、付费专栏及课程。

余额充值