快速入门ElasticSearch(上)

写在前面ElasticSearch是一个分布式、可扩展、实时的搜索与数据分析引擎 , 它能从项目一开始就赋予你的数据以搜索、分析和探索的能力 , 在日常工作和学习中扮演着非常重要的角色 , 鉴于此本篇将从ElasticSearch的安装、基础概念、基本用法、高级查询等角度来进行介绍 。
ElasticSearch简介ElasticSearch是一款基于Apache Lucene构建的开源搜索引擎 , 采用Java编写 , 提供简单易用的RESTful API , 开发者可以通过它轻松实现简单明了的搜索功能 。 ElasticSearch轻松的横向扩展能力 , 支持PB级别的结构化和非结构化数据处理 。 其实就是说当机器的磁盘容量不满足需求的时候 , 可以通过不断的横向添加节点(机器)来解决容量问题 , 通过这种方式可以使我们的存储容量从GB到TB甚至PB级别的转化 。
接下来学习ElasticSearch的应用场景: (1)海量数据分析引擎 。 当你需要对应用日志、系统日志等进行分析时 , 可以使用ElasticSearch的聚合搜索功能来实现; (2)站内搜索引擎 。 当你需要快速搭建一个站内搜索的时候 , 使用ElasticSearch就能完成这个任务; (3)数据仓库 。 开发者可以使用ElasticSearch强大的分布式搜索能力 , 直接将其作为数据仓库产品来使用 , 可以存储PB级别的结构化或者非结构化数据 , 这样可以为上层应用提供强大的数据存储能力 。
当然上面介绍的应用场景只是一些较为通用的场景 , 而实际上一些大型公司会将ElasticSearch用在其他的地方 , 如英国卫报公司则使用ElasticSearch来实时搜集用户日志和社交网络数据以便于实时分析公众对文章的响应程度 。 而维基百科和GitHub尽管都使用ElasticSearch进行站内实时的数据搜索 , 但是维基百科则使用ElasticSearch提供全文搜索 , 并高亮关键字;GitHub则使用ElasticSearch来解锁1000多亿代码;百度则使用ElasticSearch搭建其实时日志监控平台 。
ElasticSearch安装ElasticSearch的版本非常特殊 , 它的迭代顺序是这样的:1.x-->2.x-->5.x-->6.x-->7.x 。 为什么会出现这个问题呢?那是因为ElasticSearch属于Elastic技术栈 , 但是Elastic技术栈中其他中间件的版本更新迭代不同 , 版本号也出现了混乱 , 举个例子ElasticSearch用2.x版本 , 而要求Kibana使用4.x版本 , 这势必会提高小白的学习门槛 , 要知道在学习任何软件的第一部分就是选择合适版本 , 鉴于此Elastic在16年就正式统一了所有Elastic技术栈中所有产品的版本号 。 综合考虑目前情况 , 笔者选择使用ElasticSearch6.x版本 , 当然在后续文章中则会使用最新版的7.x系列来进行学习 。
ElasticSearch单实例安装【快速入门ElasticSearch(上)】第一步 , 下载安装java8及以上版本 , 之后进行环境变量的设置: (1)JAVA_HOME值为G:\Application\java1.8;(2)在系统变量的Path处设置两个值 , 分别是:%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin 。 (3)使用java -version命令来检验是否安装成功 , 输出版本信息则表明Java安装成功:
快速入门ElasticSearch(上)文章插图
第二步 , 新建ElasticSearch文件 , 并将后续下载的文件存放与此 , 同时便于后续管理 。
第三步 , 下载ElasticSearch安装包 , 点击 ElasticSearch镜像地址 , 选择合适的64位版本后进行下载 。
第四步 , 启动ElasticSearch 。 开发者可以进入到ElasticSearch的bin目录 , 然后直接执行start /min elasticsearch命令即可在后台启动ElasticSearch 。 之后直接打开浏览器 , 输入后显示下图所示信息 , 也表明elasticsearch已成功启动:
快速入门ElasticSearch(上)文章插图
这样关于ElasticSearch单实例的安装就完成了 , 但是由于ElasticSearch返回的是JSON格式信息 , 对开发者并不是非常友好 , 因此需要安装Head插件 , 因为它提供了Web界面 , 帮我们解决了无界面这一问题 , 同时也可以提供基本信息查看 , REST请求模拟 , 以及基本数据的检索等功能 。 点击 这里 获取插件 , 然后download , 选择下载ZIp文件即可:


推荐阅读