ElasticSearch入门

1. 简介

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式的多用户能力的全文搜索引擎,基于RESTful web接口。
ES是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。
它提供:

  1. 分布式的实时文件存储,每个字段都被检索并可被搜索;
  2. 实时分析的分布式搜索引擎;
  3. 可以扩展到上百台服务器,处理PB级结构化或非结构化数据

2. 适用场景

  1. 可以用于搜索各种文档
  2. 适合作为NoSQL的数据存储,但不支持分布式事务

3. 实现过程

  1. 首先用户将数据提交到ES数据库中;
  2. 再通过分词控制器去将对应的语句分词;
  3. 然后将其权重和分词结果一并存入数据;
  4. 当用户搜索数据时,再根据权重将结果排名、打分;
  5. 最后将返回结果呈现给用户。

4. 核心概念

  1. 接近实时(NRT)
    ElasticSearch是一个接近实时的搜索平台,从索引一个文档直到这个文档能够被搜索到只有轻微的一秒延迟;
  2. 索引(index)
    一个索引就是一个拥有相似特征的文档的集合。类似于关系型数据库中Database的概念;
  3. 类型(type)
    在一个索引中,你可以定义一种或多种类型。一个类型就是你的索引的一个逻辑上的分类/分区,通过我们会为一组公共字段的文档定义一类型。类型(type)类似于关系型数据库中Table的概念;
  4. 文档(document)
    一个文档是一个可被索引的基础信息单元。文档以JSON的格式来表示;
    在一个index/type里面,我们可以存储任意多的文档;
    文档(document)类似于关系型数据库中一行记录(Record)的概念;
    一个文档除了用户定义的数据外,还包括:_index、_type和_id字段。
  5. 分片和复制(shards & replicas)
    ES提供将索引(index)划分成多份的能力,这些份就叫做分片。当创建一个索引的时候,可以指定你想要的分片的数量,每个分片本身也是一个功能完善并且独立的"索引",这个"索引"可以被放置到集群中的任何节点上;
    在网络环境中,失败随时有可能发生,在某个分片/节点因为某些原因处于离线状态或者消失时,这种情况下,有一个故障转移机制是非常有用并且强力推荐的,为此目的,ES允许你创建分片的一份或者多份拷贝,这些拷贝叫做复制,复制的重要性:
    1. 在分片/节点失败的情况下,提供了高可用性;
    2. 扩展搜索量/吞吐量,因为搜索可以在所有的复制上并行运行。
    综上:
    每个索引可以被分成多个分片,一个索引也可以被复制0次或多次。
    一旦复制了索引,每个索引就有了主分片和复制分片之别。
    分片和复制的数量可以在创建索引的时候指定,在索引创建之后,可以在任何时候动态改变复制的数量,但是不能改变分片的数量。
    默认情况下,Elasticsearch中的每个索引被分片5个主分片和1个复制,这意味着,如果你的集群中至少有两个节点,你的索引将会有5个主分片和另外5个复制分片(1个完全拷贝),这样的话每个索引总共就有10个分片。一个索引的多个分片可以存放在集群中的一台主机上,也可以存放在多台主机上,这取决于你的集群机器数量。主分片和复制分片的具体位置是由ES内在的策略所决定的。

以上原文链接:https://www.cnblogs.com/sunsky303/p/9438737.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值