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

原文地址:https://www.cnblogs.com/Alexephor/p/11380083.html