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

        

    

     

        

你可能感兴趣的:(ElasticSearch系列,elasticsearch,搜索引擎,大数据)