文章目录
- 使用案例
- 启发
- 使用ElasticSearch作为主要的后端,作为搜索引擎
- 在现有系统增加ElasticSearch
- 使用ElasticSearch和现有的工具
常用于日志收集(分析)系统、实时警报
使用案例
- 维基百科:全文检索、高亮、搜索推荐。
- The Guardian (国外新闻网站):用户行为日志(点击、浏览、收藏、评论) +社交网络数据(对某某新闻的相关看法)、数据分析提供给文章作者以便了解公众反馈。
- Stack Overflow :结合全文搜索与地理位置查询,以及more-like-this功能来找到相关的问题和答案。
- GitHub:Github使用Elasticsearch搜索20TB的数据,包括13亿的文件和1300亿行的代码。
- 电商网站:检索商品、商品价格监控网站(发送降价通知消息给用户)。
- BI系统、商业智能、Business Intelligence:BI分析一下某某区域最近3年的用户消费金额的趋势以及用户群体的组成构成。
- 站内搜索(电商,招聘,门户,等等),IT系统搜索(OA,CRM,ERP,等等),数据分析(ES热门的一个使用场景)。
启发
使用ElasticSearch作为主要的后端,作为搜索引擎
在传统的项目中,搜索引擎是部署在成熟的数据存储的顶部,因为早期的搜索引擎不能提供存储或者其他的功能,我们只是为了提高快速检索能力引入
Es提供持久存储、统计等多项强大的功能,是一款现代的搜索引擎,如果你刚开始一个新项目,可以考虑用es作为唯一数据存储,这样设计会更简单,但是这种情况需要个人斟酌是否符合应用场景,场景不支持频繁更新、事务等操作
举个例子:新建的一个博客系统使用es作为存储,我们可以向es提交新的博文存储,使用es进行检索、统计数据等
在现有系统增加ElasticSearch
-
如果原有系统需要事务支持,或者关系复杂,需要考虑在原有的系统基础上引入es的支持,因为es不支持事务(1.x版本不支持,2.x版本支持的不够好)。
-
如果现在需求是在一个复杂系统上新增检索服务而已,那么可以考虑引入es作为系统检索引擎,不建议重构系统,建议在原有数据存储的基础上增加。
使用ElasticSearch和现有的工具
假设要部署一个大规模的日志框架存储,搜索,并分析了大量的事件。
处理日志和输出到Elasticsearch,您可以使用日志记录工具,如rsyslog,Logstash,或Apache Flume(flume.apache.org),搜索和可视化界面分析这些日志,你可以使用Kibana。
一篇搞懂ElasticSearch(附学习脑图)
如何系统学习ElasticSearch:死磕 Elasticsearch 方法论(初学者必看)