作者其他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. P3047 [USACO12FEB]附近的牛Nearby Cows

    https://www.luogu.org/problemnew/show/P304 1 #include <bits/stdc++.h> 2 #define up(i,l,r) for( ...

  2. C语言闰年问题程序框图

    判定2000-2500年中的每一年是否为闰年,并将结果输出. 先分析闰年成立条件: 1)能被4整除,但不能被100整除的年份都是闰年: (2)能被400整除的年份是闰年: #include<st ...

  3. JS中的同步和异步

    javascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条流水线,仅仅是一条流水线而已,要 ...

  4. HTML标签有序标签和无序标签

    1.<ul>标签定义无序列表,所谓无序,是指以●.○.▽.▲等开头的,没有顺序的列表项目 1.1  设置无序列表的类型—type             无序列表的默认符号是圆点(● ). ...

  5. Ubuntu 16.04上安装Global阅读源代码工具

    参照10年前写的文档 (Linux源码阅读工具lxr和glimpse的安装与配置),想重新搭建一个源代码阅读工具,发现源里面都没有相关的工具了. 然后看到有更简单的安装工具Global可以使用,所以果 ...

  6. opencv2.4.13+python2.7学习笔记--OpenCV中的图像处理--图像轮廓特征和几何矩

    阅读对象:对概率论中的期望有一点了解. 1.图像几何矩 1.1简述 图像的几何矩包括空间矩.中心矩和中心归一化矩.几何矩具有平移.旋转和尺度不变性,一般是用来做大粒度的区分,用来过滤显然不相关的图像. ...

  7. 公用表表达式 (CTE)、递归、所有子节点、sqlserver

    指定临时命名的结果集,这些结果集称为公用表表达式 (CTE).公用表表达式可以包括对自身的引用.这种表达式称为递归公用表表达式. 对于递归公用表达式来说,实现原理也是相同的,同样需要在语句中定义两部分 ...

  8. centos jdk 配置及版本切换

    一. 环境变量: /etc/profile JAVA_HOME=/usr/lib/jdk1.8.0_91JRE_HOME=/usr/lib/jdk1.8.0_91/jreCLASS_PATH=.:$J ...

  9. Android中屏幕保持唤醒

    1.锁的类型 PowerManager中各种锁的类型对CPU .屏幕.键盘的影响: PARTIAL_WAKE_LOCK : 保持CPU 运转,屏幕和键盘灯有可能是关闭的. SCREEN_DIM_WAK ...

  10. 《OpenCV3编程入门》学习笔记

    把第一章的例程看完了,除了基本的操作函数,还了解了跟视频操作有关的函数,发现在自己的中心偏检测中,不仅可以处理图片,还可以对视频进行处理. 问题解决方案 1.0x7547d36f 处有未经处理的异常: ...