文章目录

  • 基本介绍
  • Elastic 介绍
  • ElasticStack
  • 常规搜索的弊端
  • 全文搜索引擎:
  • Elasticsearch和Solr之间如何选择?
  • ES 的优点
  • ES 案例


基本介绍

Elastic 介绍

Elasticsearch是一个分布式,RESTful风格的搜索和数据分析引擎,可以解决各种用力。它也是Elastic Stack的核心,集中存储数据,帮助发现各种情况。

ElasticStack

包括 Elasticsearch 、Kibana、Beats、和Logstash (被合称为ELK Stack)
能够安全可靠的获取任何来源与格式的数据,实时对数据进行搜索、分析和可视化。ES(Elastic Search)是一个 开源的高扩展的分布式全文搜索引擎,是整个Elastic Stack的黑心。可以近乎实时的存储、检索数据;可扩展到上百台服务器,处理PB级数据。

常规搜索的弊端

对于以下场景,常规搜索方式性能是很差的

  • 搜索的数据对象是大量的非结构化的文本数据。
  • 文件记录量达到数十万或数百万个甚至更多。
  • 支持大量基于交互式文本的查询。
  • 需求非常灵活的全文搜索查询。
  • 对高度相关的搜索结果的有特殊需求,但是没有可用的关系数据库可以满足。
  • 对不同记录类型、非文本数据操作或安全事务处理的需求相对较少的情况。
全文搜索引擎:

目前广泛应用的主流搜索引擎,计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程

Elasticsearch和Solr之间如何选择?

  • Elasticsearch易于安装且非常轻巧,但是若管理不当,易于部署反而可能会成为一个问题。如果应用使用的是JSON,建议使用Elasticsearch,否则,建议使用solr(对schema.xml 和solrconfig.xml都有较好的记录)
  • Solr的用户、开发者和贡献者社区都相对成熟,ES的社区虽然规模较小,但是目前再不断增长中
  • Solr更加成熟,ES更稳定
  • Solr有清晰的示例和API用例场景,ES缺乏好的示例和配置说明。

ES 的优点

  • 易于使用
  • 更适合处理分析查询
  • 分布式索引
  • ES再开源日志管理用例中有主导性地位
  • ES暴露了更多的关键指标以便监控

ES 案例

  • GitHub
  • Wiki
  • SoundCloud
  • 百度
  • 新浪
  • 阿里巴巴
  • Stack Overflow