• Elasticsearch背景初识


    Apache

      最初,Apache基金会的开发爱好者开发并维护一个叫Apache的HTTP服务器,后来,Apache服务器越来越火,就启动了更多的项目,比如PHP、Java Apache以及更多的子项目。比如Jakarta。

    Jakarta

      Jakarta是为了发展Java容器而启动的Java Apache的项目。后来随着Java的火爆而成为了囊括了众多基于Java语言开源软件子项目的项目。比如从这里孵化出了Tomcat、ant、Struts、Lucene。

    Lucene

      Lucene是Apache软件基金会4 jakarta项目的子项目。它是一个开源的全文检索引擎工具包。但它并不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。

    常见的开源搜索引擎

    基于Lucene的搜索引擎,java开发,包括:

    • Lucene           它只是一个类库,有足够的定制和优化空间
    • Solr                           支持添加多种格式的索引
    • elasticsearch
    • katta
    • compass

    基于C++开发的:  

    • Sphinx        高速的建立索引(在当代CPU上,峰值性能可达到10 MB/秒)

            高性能的搜索(在2 – 4GB 的文本数据上,平均每次检索响应时间小于0.1秒)

            可处理海量数据(目前已知可以处理超过100 GB的文本数据, 在单一CPU的系统上可 处理100 M 文档)

            提供了优秀的相关度算法,基于短语相似度和统计(BM25)的复合Ranking方法

            支持分布式搜索

            支持短语搜索

            提供文档摘要生成

            可作为MySQL的存储引擎提供搜索服务

            支持布尔、短语、词语相似度等多种检索模式

            文档支持多个全文检索字段(最大不超过32个)

            文档支持多个额外的属性信息(例如:分组信息,时间戳等)

            支持断词

    Elasticsearch

    优点:

    • 分布式:节点对外表现对等,加入节点自动均衡
    • elasticsearch完全支持Apache Lucene的接近实时的搜索
    • 各节点组成对等的网络结构,当某个节点出现故障时会自动分配其他节点代替期进行工作
    • 横向可扩展性,如果你需要增加一台服务器,只需要做点配置,然后启动就完事了
    • 高可用:提供复制(replica)机制,一个分片可以设置多个复制,使得某台服务器宕机的情况下,集群仍旧可以照常运行,并会把由于服务器宕机丢失的复制恢复到其它可用节点上;这点也类似于HDFS的复制机制(HDFS中默认是3份复制)

    缺点:

    • 不支持事物
    • 相对吃内存

    简单的描述

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

    面向文档

      关系型数据库以记录和行的形式存储数据,但是在elasticsearch中,是以文档的形式存储数据
      但区别在于,文档要比数据表的行更加灵活。因为文档可以是多层次的,它(文档)鼓励你将属于一个逻辑实体的数据保存在同一个文档中,而不是散落在各个表的不同行中。这样查询效率很高,因为我们无需连接其他的表,我们在用关系型数据库时,一定知道连表查询(尤其是连接多张表)是多么的费时吧!

    国内成功案例

    • 苏宁在大数据平台使用es存储600TB数据,集群规模包括:搭建超过500+物理机,30万shards,80000index。
    • 腾讯在日志实时分析中采用es,处理高并发100W/S,PE级数据。

      更多案例:https://elasticsearch.cn/slides/category-38

    我的学习途径

    • elasticsearch官方文档:这个比较好点,可以多多参考。
    • elasticsearch博客:这个吧,看看就行
    • elasticsearch社区:社区还是很好的,多转转社区。
    • elasticsearch视频:包括入门视频什么的,初级学者可以。
    • elasticsearch实战:该书籍的质量还是不错的,还没看过。
    • elasticsearch权威指南:同样的,这个也不错,简单的瞟了下。

      我采集的到数据,一个Lucene索引(也就是一个elasticsearch分片)不能处理多于21亿篇文档,或者多于2740亿的唯一词条。但达到这个极限之前,我们可能就没有足够的磁盘空间了!

  • 相关阅读:
    bash task list and interrupt
    bash字符串大小写转换方法
    Spectrum Mask
    OFDM中CP的优缺点
    模块边界使用寄存器来做数据的交互
    跨时钟域信号处理
    FPGA中一个Slice所含资源
    Verilog中if-else改写成case的方法
    同步序列的自相关与互相关
    TCP三次握手四次挥手
  • 原文地址:https://www.cnblogs.com/Alexephor/p/11380083.html
Copyright © 2020-2023  润新知