ElasticSearch 简介

来自姬鸿昌的知识库
Jihongchang讨论 | 贡献2022年12月2日 (五) 08:00的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

https://www.bilibili.com/video/BV1nF411F75k?p=6

ElasticSearch(简称ES)是一个分布式、RESTful 风格的搜索和数据分析引擎,使用 Java 开发并且是当前最流行的开源的企业级搜索引擎,能够达到近实时搜索,稳定,可靠,快速,安装使用方便。

客户端支持Java、.NET(C#)、Python、Ruby等多种语言。


搜索引擎排名

https://db-engines.com/en/ranking/search+engine


起源——Lucene

  • 基于Java语言开发的搜索引擎类库
  • 创建于1999年,2005年成为Apache顶级开源项目
  • Lucene具有高性能、易扩展的优点
  • Lucene的局限性
    • 只能基于Java语言开发
    • 类库的接口学习曲线陡峭
    • 原生并不支持水平扩展


Elasticsearch 的诞生

Elasticsearch是构建在Apache Lucene之上的开源分布式搜索引擎。

  • 2004年 Shay Banon 基于Lucene开发了Compass
  • 2010年 Shay Banon 重写了Compass,取名Elasticsearch
    • 支持分布式,可水平扩展
    • 降低全文检索的学习曲线,可以被任何编程语言调用


Elasticsearch 与 Lucene 核心库相比,优势在于:

  • 完美封装了 Lucene 核心库,设计了友好的 Restful-API,开发者无需过多关注底层机制,直接开箱即用。
  • 分片和副本机制,直接解决了集群下性能与高可用问题。