继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

快速上手 Elasticsearch 的几个建议

2018-05-20 00:33:317845浏览

rockybean

2实战 · 7手记 · 7推荐
TA的实战

相信不少同学都听说过 Elasticsearch,作为目前最流行的搜索引擎实现方案,越来越多的公司在自己的架构中引入,而其应用场景也从搜索引擎扩展到了日志存储分析、大数据分析领域,本文尝试给初次接触Elasticsearch 的同学一些建议,旨在帮助大家以最佳的姿势打开 Elasticsearch 的学习大门。

1

alsdjfksdjf

Elasticsearch 简介与安装

Elasticsearch 是为更简单地实现搜索功能而生的软件。研究过搜索引擎的同学应该听说过 Lucene,这是 Java 系中最流行的搜索引擎库(Library)。这里要注意的是 Lucene 只是一个库而已,你要使用的话必须自己编写代码将其整合到自己的软件架构中才可以,需要自己处理分词、索引创建、读取、查询等工作,它没有对外提供类似 REST 接口 、分布式存储等功能。简单一句话,直接使用 Lucene 的门槛很高,而且它只能用于 Java 语言。Elasticsearch 的出现解决了这些问题,它在 Lucene 之上将分词、索引创建与读取、查询等封装在 REST 接口 中,解决了语言的限制,且支持分布式存储、数据准实时检索(最快1s 数据即可被查询)、聚合分析等高级功能。只要你会使用 http 请求接口,那么就可以快速地基于 Elasticsearch 实现一个功能完备的搜索引擎。更详细的介绍大家可以去看官方介绍(https://www.elastic.co/products/elasticsearch)。

Elasticsearch 的安装使用异常简单,如下:

  1. 安装 JDK1.8

  2. 下载 elasticsearch https://www.elastic.co/downloads/elasticsearch

  3. 解压软件并执行 bin/elasticsearch 即可完成软件启动

这里我们不再做详细介绍,大家自己动手实践一遍便可快速上手。

2

ad

建议一之寻找秘籍

学习新知识的时候,如果有一套好的教程可以遵循,对我们学习会起到事半功倍的效果。关于 Elasticsearch 的学习,我给大家推荐官方的教程《Elasticsearch - The Definitive Guide》(https://www.elastic.co/guide/en/elasticsearch/guide/current/index.html)。虽然这本书的内容是基于 2.x 版本写的,部分 API 的使用有些过时,但其内容的安排是非常合理,由浅到深,非常适合新手按部就班的学习。大家只需要从第一章开始看起,并跟随书上的例子实际练习,很快就能上手 Elasticsearch。

在这本书看完后,再去大致过一下官方的技术文档《Elasticsearch Reference》(https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html),对相关知识查缺补漏,并对相关功能的文档分布做到心中有数,用到的时候可以快速定位就可以了。

3

aa

建议二之神兵利器

Elasticsearch 提供了 REST HTTP 接口,对于开发和测试也极其方便,在实际使用时,很多同学会使用命令行 curl 或者 Postman之类图形化 http 请求工具来完成对 Elasticsearch 的请求。每每看到这里,我都感觉痛心不已,官方有 Kibana这类神兵利器,大家弃而不用,而去用效率低下的命令行等,实在是可悲。因此,这里给大家强烈推荐 Kibana 中的 Dev Tools Console插件,用过的都说好,而且再也回不去命令行了。

Kibana 的地址为 https://www.elastic.co/downloads/kibana,大家按照说明下载安装好即可,这里我着重讲解下 Console插件的几个妙用。

上图即为 Dev Tools Console 插件的界面,左边栏为请求输入框,右边栏为返回结果。左边栏可以包含多条请求命令,当你输入命令时,会有自动提示,该功能非常强大(如1所示),当你面对 elasticsearch 繁多的 api 时,很难记住所有的名字,有了自动提示和补全,可以有效提高你拼写 api 的效率。当你写好命令后,点击2的按钮就可以执行该请求。输入框中可以有多条命令,好处一是可以一次执行多条命令,只要选中要执行的命令,然后点击2按钮就可以了;好处二是可以回顾或执行历史命令,方便做对照。

上图1所示的设置按钮有两个功能,一个是将当前命令按照 curl命令行复制输出,方便你在命令行测试;另一个是格式化请求的 JSON 字符串。大家如果有更多的疑问可以点击右上角的 Help 去查看帮助文档,比如这里有 Keyboard tips,是一些操作的快捷键,如果你能熟练的使用,也会大大提升你的效率。

虽然 Kibana Dev Tools Console 插件 使用很简单,但在实际学习中,很多同学都没有发现这个工具的强大,而惰性地选择命令行等效率低下的工具,希望大家在看到这篇文章后可以立马上手体验下这个工具的便捷和强大之处。相信在它的助力下,你能更快地上手 Elasticsearch。

4

aaa

建议三之刻苦练功

秘籍和神兵到手后,能否成为一代武林高手,就看各位能否耐住寂寞,刻苦练功了,加油吧!

如果大家有任何 elasticsearch 的问题,欢迎和我沟通讨论!


打开App,阅读手记
12人推荐
发表评论
随时随地看视频慕课网APP

热门评论

beats是不是只做搜集?不做转换的?

老师好

刚接触这个东西。就是想问下如果不是分析web access log,而是自己定义的log,只有IP,name之类的参数时,是不是不使用logstash更好

查看全部评论