作者其他ELK快速入门系列文章

logstash快速入门实战指南

Kibana从入门到精通

一、前言

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

二、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如何诞生

Elasticsearch是一个开源的搜索引擎,建立在一个全文搜索引擎库Apache Lucene™基础之上。 Lucene可以说是当下最先进,高性能,全功能的搜索引擎库 - 无论是开源还是私有。

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

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

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

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

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

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

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

四、Elasticsearch的应用场景

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

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

Elasticsearch从入门到精通-Elasticsearch是什么的更多相关文章

  1. Elasticsearch从入门到精通之Elasticsearch集群内的原理

    上一章节我介绍了Elasticsearch安装与运行,本章节及后续章节将全方位介绍 Elasticsearch 的工作原理 在这个章节中,我将会再进一步介绍 cluster . node . shar ...

  2. Elasticsearch从入门到精通之Elasticsearch基本概念

    导读 在上一章节我们介绍Elasticsearch前世今生,今天我们继续进行本章内容,Elasticsearch的核心概念.从一开始就理解这些概念将极大地帮助简化学习过程. 近实时(NRT) Elas ...

  3. kibana从入门到精通-Kibana安装

    作者其他ELK快速入门系列文章 Elasticsearch从入门到精通 logstash快速入门实战指南 简介 Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之 ...

  4. ElasticSearch 7.8.1 从入门到精通

    学前导读 ElasticSearch对电脑配置要求较高,内存至少4G以上,空闲2G内存,线程数4018+ 学习的时候,推荐将ElasticSearch安装到Linux或者mac上,极度不推荐装Wind ...

  5. 专栏《Elasticsearch 7.x从入门到精通》的相关源代码

    新版Elasticsearch 7.3 和 Spring Boot 2.1.7 集成演示项目       第一个项目:演示Elasticsearch 6.4.3 和Spring Boot 2.1.7集 ...

  6. Elasticsearch 教程--入门

    1.1 初识 Elasticsearch 是一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎,可以说 Lucene 是当今最先进,最高效的全功能开源搜索引擎框架. 但是 L ...

  7. Elasticsearch 基础入门

    原文地址:Elasticsearch 基础入门 博客地址:http://www.extlight.com 一.什么是 ElasticSearch ElasticSearch是一个基于 Lucene 的 ...

  8. Elasticsearch原理入门

    这是一篇拼接贴,我是缝合怪 项目中用到了es,使用方法是挺简单的,封装了基本api以后,把查询条件封装一下传给client执行就可,但是光使用比较肤浅,研究一下原理和本质,更利于以后开发使用 扫盲贴 ...

  9. Elasticsearch从入门到放弃:分词器初印象

    Elasticsearch 系列回来了,先给因为这个系列关注我的同学说声抱歉,拖了这么久才回来,这个系列虽然叫「Elasticsearch 从入门到放弃」,但只有三篇就放弃还是有点过分的,所以还是回来 ...

随机推荐

  1. 浅谈JS面向对象

    浅谈JS面向对象 一 .什么是面向过程 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了.注重代码的过程部分. 二.什么是面向对象 最先出现在管理学 ...

  2. 0.计划用libgdx写一个六边形回合制slg兵棋游戏

    题主层是一个e社游戏迷,但是因为国家政策,e社已经放弃了中国市场,所以决定自己来做,暂时当一个副业 大致计划: 1,先完成一个类似将军的荣耀的战旗游戏 2.再在其基础上制作一个钢铁雄心或世2 3.然后 ...

  3. PS扣签名

    1.用PS打开签名: 2.在图层界面切换到[通道],选择一个黑白分明或者明暗明显的签名图通道.按着“Ctrl”键就会显示出手指和方块的图标,按键的同时左击一下选择的通道: 3.切换到第一项的[图层]界 ...

  4. C#遍历SharePoint文档库下所有文档包括文档库中子文件夹下所有文档

    /// <summary> /// 获取取子文件下所有文件 /// </summary> /// <param name="web"></ ...

  5. s6-6 TCP 连接释放

    TCP 连接释放 任何一方在没有数据要传送的时候,都可以发送一个FIN置位了的 TCP 数据段 当FIN被确认的时候,该方向的连接被关闭 当双向连接都关闭了的时候,连接释放 两军队问题 两军队问题 ( ...

  6. AlphaGo原理浅析

    一.PolicyNetwork(走棋网络) 首先来讲一下走棋网络.我们都知道,围棋的棋盘上有19条纵横交错的线总共构成361个交叉点,状态空间非常大,是不可能用暴力穷举的方式来模拟下棋的.但是我们可以 ...

  7. Linux 搜某个文件里关键字的上下500行到执行文件里

    Linux 搜某个文件里关键字的上下500行到执行文件里grep '300000111110' -C 500 ./saastom7061_APP3/logs/sass.log >/app/saa ...

  8. 关于iOS与html交互,隐藏或修改html标签内容

    wkwebview 1.隐藏顶部标题栏 [webView evaluateJavaScript:@"document.getElementsByClassName('page-header' ...

  9. Android WebView 打印 Console Log

    通常状况下,添加如下代码即可: mWebView.setWebViewClient(new WebChromeClient {      /*android 低版本 Desperate*/     @ ...

  10. 小程序上传wx.uploadFile - 小程序请假

    小程序上传wx.uploadFile UploadTask wx.uploadFile(Object object) 将本地资源上传到服务器.客户端发起一个 HTTPS POST 请求,其中 cont ...