Elasticsearch从入门到精通-Elasticsearch是什么

做者其余ELK快速入门系列文章html

 

logstash快速入门实战指南web

Kibana从入门到精通数据库

1、前言

驱动将来商业发展的最重要“能源”不是石油,而是数据。咱们还来不及了解它,这个世界已经被它淹没。多年来,咱们系统间流转和产生的大量数据已让咱们不知所措。现有的技术都集中在如何解决数据仓库存储以及如何结构化这些数据。这些看上去都挺美好,直到你实际须要基于这些数据实时作决策分析的时候才发现根本不是那么一回事。Elasticsearch在这个时代能给咱们带什么呢?咱们带着这些疑问去探索Elasticsearch能作什么。。。apache

2、Elasticsearch能作什么

Elasticsearch 是一个实时的分布式搜索分析引擎, 它能让你以一个史无前例过的速度和规模,去探索你的数据。 它被用做全文检索、结构化搜索、分析以及这三个功能的组合:编程

  • Wikipedia 使用 Elasticsearch 提供带有高亮片断的全文搜索,还有 search-as-you-type 和 did-you-mean 的建议。
  • 卫报 使用 Elasticsearch 将网络社交数据结合到访客日志中,实时的给它的编辑们提供公众对于新文章的反馈。
  • Stack Overflow 将地理位置查询融入全文检索中去,而且使用 more-like-this 接口去查找相关的问题与答案。
  • GitHub 使用 Elasticsearch 对1300亿行代码进行查询。

然而 Elasticsearch 不只仅为巨头公司服务。它也帮助了不少初创公司,像 Datadog 和 Klout, 帮助他们将想法用原型实现,并转化为可扩展的解决方案。Elasticsearch 能运行在你的笔记本电脑上,也能够扩展到上百台服务器上去处理PB级数据。服务器

Elasticsearch 中没有一个单独的组件是全新的或者是革命性的。全文搜索好久以前就已经能够作到了, 就像早就出现了的分析系统和分布式数据库。 革命性的成果在于Elasticsearch将这些单独的,有用的组件融合到一个单一的、一致的、实时的应用中。它对于初学者而言有一个较低的门槛, 而当你的技能提高或需求增长时,它也始终能知足你的需求。网络

若是你在阅读本文章前已经你拥有大量数据;你准备使用它作些什么 ,不然拥有这些数据将没有意义。elasticsearch

不幸的是,大部分数据库在从你的数据中提取可用知识时出乎意料的低效。 固然,你能够经过时间戳或精确值进行过滤,可是它们可以很好地按您要求进行全文检索、处理同义词、经过相关性给文档评分么? 它们从一样的数据中生成分析与聚合数据吗?最重要的是,它们能实时地完成上面的那些需求而不需通过大型批处理的任务么?编程语言

这就是 Elasticsearch 脱颖而出的地方:Elasticsearch 鼓励你去探索与利用数据,而不是由于查询数据太困难,就让它们烂在数据仓库里面。分布式

在使用时这些数据时,Elasticsearch 将成为你最好的朋友,与您一块儿探索数据里的一切。。。

3、Elasticsearch如何诞生

Elasticsearch是一个开源的搜索引擎,创建在一个全文搜索引擎库Apache Lucene™基础之上。 Lucene能够说是当下最早进,高性能,全功能的搜索引擎库 - 不管是开源仍是私有。

可是Lucene仅仅是一个库。为了充分发挥其功能,你须要使用Java并将Lucene直接集成到应用程序中。更糟糕的是,您可能须要得到信息检索学位才能了解其工做原理.Lucene 很是复杂。

Elasticsearch也是使用Java编写的,它的内部使用Lucene作索引与搜索,可是它的目的是使用全文检索变得简单,经过隐藏Lucene的复杂性,取而代之的提供一套简单一致的RESTful API。

然而,Elasticsearch不只仅是Lucene,而且也不只仅是一个全文搜索引擎。 它能够被下面这样准确的形容:

  • 一个分布式的实时文档存储,每一个字段能够被索引与搜索
  • 一个分布式实时分析搜索引擎
  • 能胜任上百个服务节点的扩展,并支持PB级别的结构化或者非结构化数据

Elasticsearch将全部的功能打包成一个单独的服务,这样你能够经过程序与它提供的简单的RESTful API进行通讯,可使用本身喜欢的编程语言充当web客户端,甚至可使用命令行(去充当这个客户端)。

就Elasticsearch而言,起步很简单。对于初学者来讲,它预设了一些适当的默认值,并隐藏了复杂的搜索理论知识。它开箱即用。只需最少的理解,你很快就能具备生产力。

随着你知识的积累,你能够利用Elasticsearch更多的高级特性,它的整个引擎是可配置而且灵活的。从众多高级特性中,挑选恰当去修饰的Elasticsearch,使它能解决你遇到的问题。

4、Elasticsearch的应用场景

    • 一个线上商城系统,用户须要搜索商城上的商品。 
      在这里你能够用es存储全部的商品信息和库存信息,用户只须要输入”手机”就能够搜索到他须要搜索到的商品。
    • 一个运行的系统须要收集日志,用这些日志来分析、挖掘从而获取系统业务将来的趋势。 
      你能够用logstash(elk中的一个产品,elasticsearch/logstash/kibana)收集、转换你的日志,并将他们存储到es中。一旦数据到达es中,就你能够在里面搜索、运行聚合函数等操做来挖掘任何你感兴趣的信息。
    • 若是你有想基于大量数据(数百万甚至数十亿的数据)快速调查、分析而且要将分析结果可视化的需求。 
      你能够用es来存储你的数据,用kibana构建自定义的可视化图形、报表,为业务决策提供科学的数据依

 想用最简单的方式去理解Elasticsearch能为你作什么,那就是使用它了,让咱们开始一块儿进入下一个Elasticsearch主题:Elasticsearch基本概念

相关文章
相关标签/搜索