文章目录

  • 搜索引擎选型调研文档
  • 1. ES
  • Elasticsearch的优缺点
  • 2. Solr
  • Solr的优缺点
  • 3. Elasticsearch与Solr的比较


搜索引擎选型调研文档

1. ES

Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据.
它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。
Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架。

Elasticsearch的优缺点
  • 优点:
  1. Elasticsearch是分布式的。不需要其他组件,分发是实时的,被叫做”Push replication”。
  2. Elasticsearch 完全支持 Apache Lucene 的接近实时的搜索。
  3. Elasticsearch 采用 Gateway 的概念,使得完备份更加简单。
  4. 各节点组成对等的网络结构,某些节点出现故障时会自动分配其他节点代替其进行工作。
  • 缺点:
  1. 只有一名开发者(当前Elasticsearch GitHub组织已经不只如此,已经有了相当活跃的维护者)
  2. 还不够自动(不适合当前新的Index Warmup API)

2. Solr

Solr(读作“solar”)是Apache Lucene项目的开源企业搜索平台。其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)的处理。Solr是高度可扩展的,并提供了分布式搜索和索引复制。Solr是最流行的企业级搜索引擎,Solr4 还增加了NoSQL支持。

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

3. Elasticsearch与Solr的比较

  1. 当单纯的对已有数据进行搜索时,Solr更快。
  2. 当实时建立索引时, Solr会产生IO阻塞,查询性能较差, Elasticsearch具有明显的优势。
  3. 随着数据量的增加,Solr的搜索效率会变得更低,而Elasticsearch却没有明显的变化。
  4. Solr 支持更多格式的数据,而 Elasticsearch 仅支持json文件格式;

综上所述,Solr是传统搜索应用的有力解决方案 ,Elasticsearch 更适用于新兴的实时搜索应用。