开发者学堂课程【ElasticSearch 最新快速入门教程:ES 简介】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/642/detail/10590
ES 简介
内容介绍:
一、ES 轶事
二、ES 的适用场景概述
三、ES 适用场景详解
四、众多工具适配 ES
一、ES 轶事
Shay Banon 认为自己参与 Lucene 完全是一种偶然,当年他还是一个待业工程师,跟随自己的新婚妻子来到伦敦,妻子想在伦敦学习做一名厨师,而自己则想为妻子开发一个方便搜索菜谱的应用,所以才接触到 Lucene。
直接使用 Lucene 构建搜索有很多问题,包含大量重复性的工作,所以 Shay 便在 Lucene 的基础上不断地进行抽象,让 java 程序嵌入搜索变得更容易,经过一段时间的打磨便诞生了他的第一个开源作品"Compass",中文即“指南针的意思。
之后Shay 找到了一份面对高性能分布式开发环境的新工作,在工作中他渐渐发现越来越需要一个易用的、高性能、实时、分布式搜索服务,于是他决定重写 Compass,将它从一个库打造成了一个独立的 server,并将其改名为 Elasticsearch。
二、ES 的适用场景概述
1.站内搜索:主要和 Solr 竞争,属于后起之秀。
2.NoSQL Json文档数据库:主要抢占 Mongo 的市场,它在读写性能上优于 Mongo,同时也支持地理位置查询,还方便地理位置和文本混合查询。
3.监控:统计、日志类时间序的数据存储和分析、可视化,这方面是引领者。
4.国外: Wikipedia (维基百科)使用 ES 提供全文搜索并高亮关键字、StackOverflow ( IT问答网站)结合全文搜索与地理位置查询、Github 使用 Elasticsearch 检索1300亿行的代码。
5.国内:百度(在云分析、网盟、预测、文库、钱包、风控等业务上都应用了 ES,单集群每天导入30TB+数据,总共每天60TB+).新浪、阿里巴
巴、腾讯等公司均有对 ES 的使用。
6.使用比较广泛的平台 ELK(ElasticSearch, Logstash, Kibana)。
三、ES 适用场景详解
了解了 ES 的使用场景,ES 的研究、使用、推广才便有价值和意义。
场景一:使用 Elasticsearch 作为主要的后端
传统项目中,搜索引擎是部署在成熟的数据存储的顶部,以提供快速且相关的搜索能力。
这是因为早期的搜索引擎不能提供耐用的存储或其他经常需要的功能,如统计。
场景二:在现有系统中增加 elasticsearch
由于 ES 不能提供存储的所有功能,一些场景下需要在现有系统数据存储的基础上新增 ES 支持。
场景三:使用 elasticsearch 和现有的工具
在一些使用情况下,您不必写一行代码就能通过 elasticssearch 完成一项工作。很多工具都可以与 Elasticsearch 一起工作,所以你不必到你从头开始编写。
例如,假设要部署一个大规模的日志框架存储,搜索,并分析了大量的事件。
如图下图,处理日志和输出到 Elasticsearch,您可以使用日志记录工具,如 rsyslog ( www.rsyslog.com ),Logstas ( www.elastic co/products/logstash),
或Apache Flume ( htp:/fume.apache.org )。
搜索和可视化界面分析这些日志,你可以使用 Kibana ( www.elastic .co/产品/ kibana)。
四、众多工具适配 ES
为什么那么多工具适配 Elasticsearch ?主要原因如下:
1 ) Elasticsearch 是开源的。
2 ) Elasticsearch 提供了 JAVA API 接口。
3) Elasticsearch 提供了 RESTful API 接口(不管程序用什么语言开发,任何程序都可以访问)
4)更重要的是,REST 请求和应答是典型的 JSON ( JavaScript 对象符号)格式。通常情况下,一个 REST 请求包含一个 JSON 文件,其回复也都是一个 JSON 文件。