什么是ElasticSearch?
ElasticSearch简称ES,它是一个开源的高扩展的分布式全文搜索引擎.它比solr使用起来更方便
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
建议在大数据量的时候使用ElasticSearch!
Lucene和ElasticSearch关系
Lucene是ElasticSearch的核心
Elastic是基于Lucene做了一些封装和增强使得我们上手非常简单
- Solr和ElasticSearch的对比与选型
对比
Solr对外提供类似Web-Service的API接口
ElasticSearch是通过简单的Restful API来隐藏Lucence的复杂性,让全文检索变得更简单
选型
当单纯的对已有数据进行搜索时,Solr更快
当建立索引的时候,Solr 回产生IO阻塞,查询性能较差,ElasticSearch具有明显的优势
随着数据量的增加(大数据量),Solr的搜索效率会变得更低,但是ElasticSearch却没有明显的变化
总结
1 ElasticSearch是开箱即用,非常简单Solr安装稍微复杂一些
2 Solr利用Zookeeper进行分不是管理,而ElasticSearch自带分布式协调管理功能
3 Solr支持更多格式的数据,比如JSON,XML,CSV,而ElasticSearch只支持JSON文件格式
4 Sorl查询快,但是更新索引时慢(插入删除慢),用于电商等查询多的应用,ElasticSearch建立索引快,也就是查询快,用于facebook新浪等搜索
5 Solr 官方提供的功能更多,而ElasticSearch本身更注重于核心功能,高级功能可以使用第三方插件提供,例如图形化界面需要kibana支持
6 Solr是传统搜索应用的有力解决方案,但是ElasticSearch更适用于新时代的搜索应用
7 Solr比较成熟,有一个更大,更成熟多用户,开发和贡献者,但是ElasticSearch想对来说开发维护者少,更新太快