zoukankan      html  css  js  c++  java
  • 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亿的唯一词条。但达到这个极限之前,我们可能就没有足够的磁盘空间了!

  • 相关阅读:
    NBUT 1120 Reimu's Teleport (线段树)
    NBUT 1119 Patchouli's Books (STL应用)
    NBUT 1118 Marisa's Affair (排序统计,水)
    NBUT 1117 Kotiya's Incantation(字符输入处理)
    NBUT 1115 Cirno's Trick (水)
    NBUT 1114 Alice's Puppets(排序统计,水)
    188 Best Time to Buy and Sell Stock IV 买卖股票的最佳时机 IV
    187 Repeated DNA Sequences 重复的DNA序列
    179 Largest Number 把数组排成最大的数
    174 Dungeon Game 地下城游戏
  • 原文地址:https://www.cnblogs.com/Alexephor/p/11380083.html
Copyright © 2011-2022 走看看