zoukankan      html  css  js  c++  java
  • Elasticsearch 什么是Elasticsearch?

    一、什么是Elasticsearch?

      Elasticsearch(ES)是一个基于Lucene构建的开源,分布式,RESTful接口全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段都是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级的数据。它可以在很短的时间内存储、搜索和分析大量的数据。他通常作为具有复杂搜索场景情况下的核心发动机。

      Elasticsearch就是为高可用和可扩展而生的。可以通过购置性能更强的服务器来完成,称为垂直扩展或者向上扩展,或增加服务器数量来完成,称为水平扩展或向外扩展。

    1.1 Elasticsearch历史

      网上流传的故事是:多年前,一个叫做Shay Banon的刚结婚不久失业的开发者,由于妻子要去伦敦学习厨师,他便跟着去了。在他找工作的过程中,为了给妻子构建一个食谱的搜索引擎,他开始构建一个早期版本的Lucene。

      直接基于Lucene工作会比较困难,所有Shay开始抽象Lucene代码以便Java程序员可以在应用中添加搜索功能。他发布了一个开源项目,叫做“Compass”。

      后来Shay找到一份工作,这份工作处在高性能和内存数据网格的分布式环境中,因此高性能的、实时的、分布式的搜索引擎也是理所当然需要的。然后他觉得重写Compass库使其成为一个独立的服务叫做Elasticsearch。

      第一个公开版本发布于2010年2月,在那之后Elasicsearch已经成为GitHub上最受欢迎的项目之一,代码贡献者超过300人。直到2016年3月30日,Elasicsearch已经发布了2.3.0版本。目前已经成为全球最受欢迎的全文搜索引擎。

      下面来说下Elasicsearch的优点:

        1.横向可扩展性: 只需要增加一台服务器,做一点儿配置,启动下Elasicsearch进程就可以并入集群。

        2.分片机制提供更好的分布性: 同一个索引分成多个分片(sharding),这点类似与HDFS的块机制;分而治之的方式可提升处理效率。

        3.高可用: 提供复制(replica)机制,一个分片可以设置多个复制,使得某台服务器在宕机的情况下,集群仍旧可以照常运行,并会把服务器宕机丢失的数据信息复制恢复到其他可用节点上。

        4.使用简单: 只需要一条命令就可以下载文件,然后很快就能搭建一个站内搜索引擎。

     

  • 相关阅读:
    Netty和Akka有什么不同?
    GitHub & Bitbucket & GitLab & Coding 的对比分析
    Log4j和Log4j2的区别
    Spring中MultipartHttpServletRequest实现文件上传 生成缩略图
    JSP显示-下拉框
    jsp页面 date转化成string
    tomcat直接访问
    web项目中各种路径的获取HttpServletRequest
    遍历Map的四种方法
    mybatis There is no getter for property named 'xx' in 'class java.lang.String
  • 原文地址:https://www.cnblogs.com/40kuai/p/7758303.html
Copyright © 2011-2022 走看看