Elasticsearch简介

分布式搜索 ES

  • Elasticsearch 简称为 ES, 是一个 开源可扩展分布式全文检索引擎
  • ES 使用 Java 开发并使用 Lucene 作为其核心来实现索引和搜索的功能。
  • 它通过简单的 RestfulAPIJavaAPI 来隐藏 Lucene复杂性,从而让全文搜索变得简单。

ES 官网:https://www.elastic.co/cn/elasticsearch/

ES 常见的使用场景

  • 搜索类场景。
  • 日志分析类场景。
  • 数据预警平台及数据分析场景。

ES 使用情况

  • 维基百科、百度百科
  • stack overflow
  • github
  • 京东
  • 今日头条
  • ...

全文搜索方案对比

Lucene

image-20220104215410601

  • Lucene 是 Apache 基金会维护的一套完全使用 Java 编写的信息搜索工具包(Jar包)
  • Lucene 可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
  • 想要使用 Lucene,必须使用 Java 来作为开发语言并将其直接集成到你的应用中,并且 Lucene 的配置及使用非常复杂。
  • 不支持集群环境。

Solr

image-20220104215520375

  • Solr 是一个有 HTTP 接口的基于 Lucene 的查询服务器,是一个搜索引擎系统。
  • 封装了很多 Lucene 细节,Solr 可以直接利用 HTTP GET/POST 请求去查询,维护修改索引。
  • Solr 利用 Zookpper 进行分布式管理。
  • 单纯的对已有数据进行搜索时,对于一开始固定的数据 Solr 更快,对于实时产生的数据的时候, solr 会产生 io 阻塞, 查询性能比较差。

Elasticsearch

image-20220104215713255

  • Elasticsearch 也是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎。
  • Elasticsearch 自身带有 分布式协调 管理功能。
  • 当实时建立索引时, Solr 会产生 io 阻塞,查询性能较差, Elasticsearch 会具有明显的优势。
posted @ 2022-01-04 21:59  BNTang  阅读(232)  评论(0编辑  收藏  举报