搜索引擎学习(二):Elasticsearch与Solr的学习与对比

来源:互联网 发布:基本款t恤 知乎 编辑:程序博客网 时间:2024/05/09 01:54

开始学习之前,先了解一下,具体是什么,能干什么,有个大概了解。方便后面的学习。

ElasticSearch

能做以下功能:

1.      全文搜索功能

2.      分布式文件实时文件存储,并将每一个字段都编入索引,使其可以被搜索。

3.      实时分析的分布式搜索引擎

4.      可以扩展到上百台服务器,处理PB级别的结构化活非结构化数据。

这多的功能被集成到一台服务器上,你可以轻松地通过客户端或者任何你喜欢的程序语言与ES的RESTful API进行交流。

 

优点:

1.      Elasticsearch是分布式的。不需要其他组件,分发是实时的,被叫做”Push replication”。

2.      Elasticsearch 完全支持 ApacheLucene 的接近实时的搜索。

3.      处理多租户(multitenancy)不需要特殊配置,而Solr则需要更多的高级设置。

4.      Elasticsearch 采用 Gateway 的概念,使得完备份更加简单

5.      各节点组成对等的网络结构,某些节点出现故障时会自动分配其他节点代替其进行工作

 

缺点:

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

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

 

 

Solr

(读作“solar”)是ApacheLucene项目的开源企业搜索平台。

其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)的处理。

Solr是高度可扩展的,并提供了分布式搜索和索引复制。

Solr是最流行的企业级搜索引擎,Solr4 还增加了NoSQL支持。

Solr是用Java编写、运行在Servlet容器(如 Apache Tomcat 或Jetty)的一个独立的全文搜索服务器。

Solr采用了 Lucene Java 搜索库为核心的全文索引和搜索,并具有类似REST的HTTP/XML和JSON的API。Solr强大的外部配置功能使得无需进行Java编码,便可对 其进行调整以适应多种类型的应用程序。Solr有一个插件架构,以支持更多的高级定制

 

 

优点:

1.      Solr有一个更大、更成熟的用户、开发和贡献者社区。

2.      支持添加多种格式的索引,如:HTML、PDF、微软 Office 系列软件格式以及 JSON、XML、CSV 等纯文本格式

3.      Solr比较成熟、稳定

4.      不考虑建索引的同时进行搜索,速度更快

 

缺点:

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

 

 

ElasticsearchSolr的比较总结:

1.二者安装都很简单

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

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

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

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

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


原创粉丝点击