01-Elasticsearch概述

Elasticsearch简述

  • ElasticSearch,简称ES,是一个开源的高扩展高实时分布式全文搜索引擎
  • ElasticSearch是使用Java语言开发的,基于Lucene的一个企业级搜索引擎。
  • 通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

ES用途

  1. 电商网站,用于检索商品
  2. 站内搜索(门户、招聘等)、数据分析
  3. 日志数据分析,logstash采集日志,ES进行复杂的数据分析,ELK技术(ElasticSearch + logstash + kibana)
  4. GitHub、Gitee搜索代码
  5. 网站论坛

ES、Solr、Lucene三者对比

Lucene简介

  • Lucene是一套开源的信息检索工具包,它不是一个完整的全文搜索引擎,而是一个全文搜索引擎的架构。
  • 它包含了索引结构、读写索引工具、相关性工具、排序等功能。
  • Solr和ES都是基于Lucene做的一些封装。

ES简介

  • Elasticsearch是一个实时分布式搜索和分析引擎。
  • 它可以用于全文搜索、结构化搜索和分析、高效的检索大规模数据。
  • 使用lucene作为内部引擎,使用统一的API来做全文检索,屏蔽底层细节。

Solr简介

  • Solr采用java开发,并且也是基于Lucene的全文搜索服务器。
  • Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展、并对索引、搜索性能进行了优化。

ES与Solr对比图

01-Elasticsearch概述

  • 当单纯的对已有数据进行搜索时,Solr更快。

01-Elasticsearch概述

  • 当实时建立索引时, Solr会产生io阻塞,查询性能较差 。
    01-Elasticsearch概述
  • 随着数据量的增加,Solr的搜索效率会变得更低,而Elasticsearch却没有明显的变化。
    01-Elasticsearch概述
  • 搜索引擎从Solr转到Elasticsearch以后的平均查询速度有了50倍的提升。

Solr与ES比较总结

  • Solr利用Zookeeper进行分布式管理,而Elasticsearch自身带有分布式协调管理功能。
  • Solr支持更多格式的数据,而Elasticsearch仅支持JSON文件格式。
  • Solr官方提供的功能更多,而Elasticsearch本身更注重于核心功能,高级功能多由第三方插件提供。
  • Solr是传统搜索应用的有力解决方案,Elasticsearch更适用于新兴的实时搜索应用。