什么是ElasticSearch
● 基于Apache Lucene构建的开源搜索引擎
● 采用JAVA编写,提供简单易用的Restful Api
● 轻松的横向扩展,可支持PB级的结构化或非结构化数据处理
ElasticSearch的由来:
许多年前,一个刚结婚的名叫 Shay Banon 的失业开发者,跟着他的妻子去了伦敦,他的妻子在那里学习厨师。 在寻找一个赚钱的工作的时候,为了给他的妻子做一个食谱搜索引擎,他开始使用 Lucene 的一个早期版本。
直接使用 Lucene 是很难的,因此 Shay 开始做一个抽象层,Java 开发者使用它可以很简单的给他们的程序添加搜索功能。 他发布了他的第一个开源项目 Compass。
后来 Shay 获得了一份工作,主要是高性能,分布式环境下的内存数据网格。这个对于高性能,实时,分布式搜索引擎的需求尤为突出, 他决定重写 Compass,把它变为一个独立的服务并取名 Elasticsearch。
第一个公开版本在2010年2月发布,从此以后,Elasticsearch 已经成为了 Github 上最活跃的项目之一,他拥有超过300名 contributors(目前736名 contributors )。 一家公司已经开始围绕 Elasticsearch 提供商业服务,并开发新的特性,但是,Elasticsearch 将永远开源并对所有人可用。
据说,Shay 的妻子还在等着她的食谱搜索引擎…
应用场景:
● 海量数据分析引擎
● 站内搜索引擎
● 数据仓库
一线公司实际应用场景:
- Wikipedia 使用 Elasticsearch 提供带有高亮片段的全文搜索,还有 search-as-you-type 和 did-you-mean 的建议。
- 卫报 使用 Elasticsearch 将网络社交数据结合到访客日志中,为它的编辑们提供公众对于新文章的实时反馈。
- Stack Overflow 将地理位置查询融入全文检索中去,并且使用 more-like-this 接口去查找相关的问题和回答。
- GitHub 使用 Elasticsearch 对1300亿行代码进行查询。
- 百度使用 Elasticsearch 搭建实时日志监控平台
- 各大BAT...
前置知识:
● 熟悉用Maven构建项目
● 了解Spring Boot的基本使用
环境要求:
● IDE工具 IDEA Eclipse等常用IDE即可
● Java JDK1.8
● 其他依赖 Maven、NodeJs(6.0以上)
入门计划:
● 安装
● 基础概念
● 基本用法
● 高级查询
● 实战演练
● 知识总结