Elasticsearch是一款非常强大的开源搜索及分析引擎,可以帮助你从海量数据中,快速找到相关的信息。例如,当你在GitHub上搜索时,Elasticsearch不仅可以帮你找到相关的代码仓库,还可以帮助你实现代码级的搜索与高亮显示;当你在网上购物时,ElasticSearch可以帮助你推荐相关的商品;当你下班打车回家时,Elasticsearch可以通过定位附近的乘客和司机,帮助平台优化调度。
除了搜索,结合Kibana、Logstash、Beats,Elastic Stack还被广泛运用在大数据近实时分析领域,包括日志分析、指标监控、信息安全等多个领域。它可以帮助你探索海量结构化、非结构化数据,按需创建可视化报表,对监控数据设置报警阈值。甚至通过使用机器学习技术,自动识别异常状况。
Elasticsearch VS solr:
异:
1、当实时建立索引的时候,solr会产生IO阻塞,而es则不会,所以,es查询性能要高于solr
2、在不断动态添加数据的时候,solr的检索效率会变的底下,而es则没有什么变化
3、solr利用zookeeper进行分布式管理,而es自身带有分布式系统管理功能。solr一般部署到web服务器上,比如tomcat,【solr的本质是一个动态web项目】
4、solr支持更多的格式数据【xml、json、csv】,而es仅支持json文件格式
5、solr是传统搜索应用的有力解决方案,但是es更适合用于新兴的实时搜索应用。
6、单纯对已有数据进行检索的时候,solr效率高,但实时搜索的时候es效率高
7、solr官网提供的功能更多,而es本身更注重于核心功能,高级功能有多个第三方插件
同:均是基于Lucene
Elasticsearch起源——Lucene
Lucene:
基于Java语言开发的搜索引擎类库
创建于1999年,2005年成为Apache顶级开源项目
Lucene具有高性能,易扩展的优点
Lucene的局限性:
只能基于Java语言开发
类库的接口学习曲线陡峭
原生并不支持水平扩展
Elastic Stack生态圈
Logstash:
开源的服务器端数据处理管道,支持从不同来源采集数据,转换数据,并将数据发送到不同的存储库中
Kibana:
可视化分析利器
BEATS:
轻量的数据采集器
ELK客户及应用场景:
网站搜索/垂直搜索/代码搜索
日志管理与分析/安全指标监控/应用性能监控/WEB抓取舆情分析
常用的架构