1. 分布式的搜索引擎和数据分析引擎
搜索:百度,网站的站内搜索
数据分析:电商网站,最近7天牙膏这种商品销量排名前10的商家有哪些
2. 全文检索,结构化检索,数据分析
全文检索:我想搜索商品名称包含牙膏的商品, select * from products where product_name like "%牙膏%"
结构化检索:我想搜索商品分类为日化用品的商品有哪些 select * from products where category_id = '日化用品'
数据分析:我想分析每一个用品分类下有多少个商品 select count(*) form products groupby category_id
3. 对海量数据进行实时的处理
分布式:ES自动可以将海量数据分散到多台服务器上去存储和检索
海量数据的处理:分布式后,就可以采用大量的服务器去存储和检索数据,自然而然就可以事项海量数据的处理
和分布式/海量数据相反的,lucene,是单机应用的,只能再单台服务器上使用
2. Elasticsearch的适用场景
a. 维基百科,全文检索,高亮,搜索推荐
b. The Guardian(国外新闻网站),用户日志+社交网络数据,分析,新闻文件公众反馈
c. Stack Overflow(国外的程序异常讨论论坛),全文检索,搜索关键问题和答案
d. GitHub(开源代码管理),搜索上亿行代码
e. 电商网站检索商品
f. 日志数据分析,logstash采集日志,ES进行复杂的数据分析
g. 商品价格监控网站,用户设定某个商品的价格阈值,当低于该阈值的时候,发送通知消息给用户
h. BI系统,ES执行数据分析和挖掘,Kibana进行数据可视化
j. 国内,站内搜索(电商,招聘,门户,等)
3. Elasticsearch的特点
1. 可以作为一个大型分布式集群(数百台服务器) 技术,处理PB级数据,服务大公司;也可以运行再单机上,服务小公司
2. ES不是新的技术,主要是将全文检索,数据分析以及分布式技术,合并在了一起,才形成了独一无二的ES
lucene(全文检索)
3. 对用户而言,是开箱即用的,非常简单
4.数据库的功能面对很多领域是不够用的,比如全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时的处理,ES作为一个传统数据库的一个补充提供了数据库所不能提供的很多功能