Elasticsearch简介
- Elasticsearch 简称为 ES, 是一个
开源
的可扩展
的分布式
的全文检索引擎
。
- ES 使用
Java
开发并使用Lucene
作为其核心来实现索引和搜索的功能。
- 它通过简单的
RestfulAPI
和JavaAPI
来隐藏Lucene
的复杂性
,从而让全文搜索变得简单。
ES 常见的使用场景
- 搜索类场景。
- 日志分析类场景。
- 数据预警平台及数据分析场景。
ES 使用情况
- 维基百科、百度百科
- stack overflow
- github
- 京东
- 今日头条
- ...
全文搜索方案对比
Lucene
![Elasticsearch简介 Elasticsearch简介](//dev-img.mos.moduyun.com/20231114/30f2c1cb-546c-41a2-a885-523e4814a347.png)
- Lucene 是
Apache
基金会维护的一套完全使用 Java 编写的信息搜索工具包(Jar包)
- Lucene 可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
- 想要使用 Lucene,必须使用 Java 来作为开发语言并将其直接集成到你的应用中,并且 Lucene 的配置及使用非常复杂。
- 不支持集群环境。
Solr
![Elasticsearch简介 Elasticsearch简介](//dev-img.mos.moduyun.com/20231114/b241f507-f031-4e06-9e4a-c702127539e4.png)
- Solr 是一个有 HTTP 接口的基于 Lucene 的查询服务器,是一个搜索引擎系统。
- 封装了很多 Lucene 细节,Solr 可以直接利用 HTTP GET/POST 请求去查询,维护修改索引。
- Solr 利用 Zookpper 进行分布式管理。
- 单纯的对已有数据进行搜索时,对于一开始固定的数据 Solr 更快,对于实时产生的数据的时候, solr 会产生 io 阻塞, 查询性能比较差。
Elasticsearch
![Elasticsearch简介 Elasticsearch简介](//dev-img.mos.moduyun.com/20231114/828c7cd2-8018-43e0-9493-a8442be8e653.png)
- Elasticsearch 也是一个建立在全文搜索引擎
Apache Lucene
基础上的搜索引擎。
- Elasticsearch 自身带有
分布式协调
管理功能。
- 当实时建立索引时, Solr 会产生 io 阻塞,查询性能较差, Elasticsearch 会具有明显的优势。
-
分享: