为什么你们项目用Solr而不用ElasticSearch

首先,先说一下solr的优缺点和elasticSearch 的优缺点;

Solr


优点

  1. Solr有一个更大、更成熟的用户、开发和贡献者社区。
  2. 支持添加多种格式的索引,如:HTML、PDF、微软 Office 系列软件格式以及 JSON、XML、CSV 等纯文本格式。
  3. Solr比较成熟、稳定。
  4. 不考虑建索引的同时进行搜索,速度更快。

缺点

  1. 建立索引时,搜索效率下降,实时索引搜索效率不高。

 Elasticsearch


优点

  1. Elasticsearch是分布式的。不需要其他组件,分发是实时的,被叫做”Push replication”。
  2. Elasticsearch 完全支持 Apache Lucene 的接近实时的搜索。
  3. 处理多租户不需要特殊配置,而Solr则需要更多的高级设置。
  4. Elasticsearch 采用 Gateway 的概念,使得完备份更加简单。
  5. 各节点组成对等的网络结构,某些节点出现故障时会自动分配其他节点代替其进行工作。

缺点

  1. 只有一名开发者(当前Elasticsearch GitHub组织已经不只如此,已经有了相当活跃的维护者)

     2. 还不够自动(不适合当前新的Index Warmup API)


Elasticsearch 与 Solr 的比较总结

    1.Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能;

    2.Solr 是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于新兴的实时搜索应用。

    3.Solr 支持更多格式的数据,而 Elasticsearch 仅支持json文件格式;

    4.Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高级功能多有第三方插件提供;

    5.Solr 在传统的搜索应用中表现好于 Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch。


 通过这些优缺点的比较:选择solr最主要:

1.我们的项目中dubbox要用到zookeeper作为注册中心,刚好可以利用zookeeper来协调Solr集群;

2.如果不在实时插入查询,solr搜索引擎的暂时可以满足搜索的速度需求;

3.项目后期升级要朝着hadoop这块发展,当数据量大的时候,用hadoop处理数据,而solr可以很简便的与hadoop结合。由于Hadoop处理大量数据,Solr帮助我们从这么大的源中找到所需的信息。不仅限于搜索,Solr也可以用于存储目的;

4.还有最后一个原因,solr有一个成熟的社区,我们在开发中遇到的问题 ,可以向社区求助,以便使我们更快的解决问题;

猜你喜欢

转载自blog.csdn.net/zy345293721/article/details/82416672