es和solr都是基于lucence框架的分词技术的倒排索引进行实现的高性能的搜索引擎框架。
Solr 诞生(当时是Solar)。
ElasticSearch 诞生。
ES更加新。
当单纯的对已有的数据进行检索的话,Solr的性能优于es。
当实时建立索引的时候,Solr会进行io阻塞,查询性能较差,而es不会。
随着数据量的增加,Solr的搜索效率变低,而es没有太多变化。
Solr需要运行在web服务器上,如tomcat,我们需要配置tomcat和Solr的连接,因为Solr本质上就是一个动态的web项目。
Solr利用Zookeeper进行分布式管理,而es自身带有分布式系统管理功能。
Solr支持更多的数据结构,如xml,json,而es仅仅支持json格式。
Solr官方提供的功能更多,而es如果想要更多功能得去安装第三方插件。
总结:es更适用于新兴的实时搜索应用,因为我们的数据会一直变化,往索引库更新,而solr在更新的时候查询效率会变慢,所以es会更好。