搜索中间件面试题之一
ElasticSearch 和 Solr 的区别
两者都是基于 Lucene 搜索服务器开发的,是一款优秀的、高性能的企业级搜索服务器,且都是基于分词技术构建的倒排索引的方式进行查询,区别如下:
- 当单纯地对已有数据进行检索的时候,Solr 的效率高于 ES
- 当实时建立索引的时候,Solr 会产生 IO 阻塞,而 ES 则不会,ES 的查询性能高于 Solr
- 在不断动态添加数据的时候,Solr 的检索效率会变得低下,而 ES 则没什么变化
- Solr 利用 ZooKeeper 进行分布式管理,而 ES 自带分布式管理功能,Solr 一般都要部署到 Web 服务器上(如 Tomcat),启动 Tomcat 的时候需要配置 Tomcat 与 Solr 的关联
- Solr 支持更多的数据格式(XML、JSON、CSV 等),而 ES 仅支持 JSON 文件格式
- Solr 是传统搜索应用的有力解决方案,但是 ES 更适用于新兴的实时搜索应用
- Solr 官网提供的功能更多,而 ES 本身更注重核心功能,高级功能一般由第三方插件提供