学习了什么是Elasticsearch以后,针对工程而言,咱们更加关心的是Elasticsearch它能干什么?能在什么地方发挥做用?跟其它相似的东西相比它不一样的地方在哪里?
概括起来就是Elasticsearch在什么场景下,相比于其余相似的技术而言,它更适合作什么git
搜索:百度,网站的站内搜索,IT系统的检索
数据分析:电商网站,最近7天牙膏这种商品销量排名前十的商家有哪些;新闻网站,最近一个月访问量排名前3的新闻板块是哪些github
全文检索:我想搜索商品名称包含牙膏的商品,select * from products where product_name like "%牙膏%"
结构化检索:我想搜索商品分类为日化用品的商品有哪些,select * from products where category_id="日化用品"
数据分析:咱们分析每个商品分类下有多少个商品,select category_id,count(*) from products group by category_id数据库
分布式:ES自动能够将海量数据分散到多台服务器上去存储和检索
海量数据的处理:分布式之后,就能够采用大量的服务器去存储和检索数据,天然而然就能够实现海量数据的处理了
近实时:检索个数据要花费1个小时(这就不叫作近实时,叫作离线批处理,batch-processing);在秒级别对数据进行搜索和分析才叫作近实时服务器
国外:
(1)维基百科 全文检索、高亮、搜索推荐
(2)The Guardian(国外新闻网站) 用户行为日志(点击,浏览,收藏,评论)+社交网络数据(对某某新闻的相关见解),数据分析,给到每篇新闻文章的做者,让他们知道他的文章的公众反馈(好、坏、热门。。。)
(3)Stack Overflow(国外程序异常讨论论坛),全文检索,搜索到相关问题和答案,若是程序报错了,就会将报错信息粘贴到里面去,搜索有没有对应的答案
(4)github,搜索上千亿行的代码
(5)电商网站,检索商品
(6)日志数据的分析 elk技术
(7)商品价格监控网站,用户设定某商品的价格阈值,当低于该阈值的时候,发送通知消息给用户
(8)BI系统,商业智能Business Intelligence。好比有个大型商场集团,BI,分析一下某某地区最近3年的用户消费金额的趋势以及用户群体的组成构成,产出相关的数张报表。网络
国内
站内搜索(电商、招聘、门户等等)
IT系统搜索(OA、CRM、ERP等等)
数据分析分布式
(1)能够做为大型分布式集群(数百台服务器)技术,处理PB级的数据,服务大公司;也能够运行在单机上服务于小公司
(2)Elasticsearch不是什么新技术,主要是将全文检索、数据分析以及分布式技术,合并在了一块儿,才造成了独一无二的ES:lucene(全文检索),商用的数据分析软件,分布式数据库
(3)对用户而言,是开箱即用的,很是简单,做为中小型应用,直接3分钟部署一下ES,就能够做为生产环境的系统来使用了,此时的场景是数据量不大,操做不是太复杂
(4)数据库的功能面对不少领域是不够用的(事务,还有各类联机事务型的操做);特殊的功能,好比全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理,Elasticsearch做为传统数据库的一个补充,提供了数据库所不能提供的不少功能学习