ElasticSearch简介以及与Solr的差别
常用环境
搜素引擎
日志数据分析 ,elk技术。elastic search + logstash + kibana
商品价格监控网站
BI系统 商业智能。比如说有个大型商场集团 分析一下某区域最近三年的用户消费金额的趋势以及用户群体的组成构成 产出相关的数张报表
Elastic Search 和Solr的差别
Elastic Search
ElasticSerch 实时分布式搜索和分析引擎 它让你以前所未有的速度处理大数据成为可能
用于全文搜索 结构化搜索 分析以及将这三者混合使用:
百科使用elastic Search提供高亮 搜索纠错 等建议功能
Elastic Search 基于Apache Lucene 的开源搜索引擎
通过简单的RESTful API隐藏lucene的复杂性
Solr
Solr是apache下的一个*开源项目 采用Java开发 基于Lucene的全文搜索服务器
相比Lucene 可扩展 可配置 并优化
可独立运行 运行jetty tomcat servlet容器中
使用WebService的Api接口
Lucene
在 java开发环境里lucene是一个成熟免费开源工具 最受欢迎的免费JAVA信息检索程序库 信息检索程序库与搜索引擎有关 但并不等于搜索引擎。
Elastic Search和Solr的选型
架构如何选择
当单纯的对已有的数据进行检索时 Solr更快
当实时建立索引时,Solr会产生io阻塞 查询性能较差 Elasticsearch具有明显优势
随着数量的增加,Solr的搜索效率会变得更低 而Elastic search却没有明显的变化
传统项目从Solr转为ElasticSearch之后 效率会有明显提升 (接近50倍)
总结
- es开箱即用,Solr相对复杂
- Solr利用Zookeeper进行分布式管理 Elastic Search自身带有分布式协调管理功能
- Solr支持更多格式的数据 (json、xml、csv) es仅支持json
- Solr官方提供功能更对 es本身更注重核心功能,高级功能有第三方插件提供(例如kibana提供图形化界面)
- Solr查询快 更新索引慢(插入慢)用于电商等查询多的应用 ES建立索引快(查询慢)实时性查询快 用于论坛以及社交网站搜索
- solr时传统搜索应用有力的解决方案 但ES更适用于新型的实时搜索应用