Elasticsearch 学习(一):入门

时间:2023-03-10 06:25:39
Elasticsearch 学习(一):入门

一、概念

Elasticsearch 是一个实时分布式搜索和分析引擎。它用于全文搜索、结构化搜索、分析以及将这三者混合使用。

*、英国卫报、*、Github 等公司都在使用 Elasticsearch。

Elasticsearch 基于 Apache Lucene。 Lucene 是目前被认为最先进、性能最好、功能最全的搜索引擎库。

但是 Lucene 只是一个库,想要使用它,必须使用 Java 语言将其集成到你的应用中。而且 Lucene 特别复杂,学习成本很高。

Elasticsearch 通过简单的 RESTful API 来隐藏 Lucene 的复杂性,降低我们的学习成本。

二、功能和优势

1. 功能

  • 分布式的实时文件存储,每个字段都被索引并可被搜索
  • 分布式的实时分析搜索引擎
  • 可以扩展到上百台服务器,处理 PB 级结构化或非结构化数据

2. 优势

  • 使用方便。所有功能集成在一个服务里,通过简单的 RESTful API、各种语言的客户端甚至命令行与之交互。
  • 上手容易。它提供了许多合理的缺省值,并对初学者隐藏了复杂的搜索引擎理论。它开箱即用(安装即可使用),只需很少的学习既可在生产环境中使用。
  • 开源。Elasticsearch 在 Apache 2 license 下许可使用,可以免费下载、使用和修改。
  • 可定制。可以根据不同的问题领域定制 Elasticsearch 的高级特性,这一切都是可配置的,并且配置非常灵活。

三、历史

关于 Elasticsearch 的历史,有个非常有趣的故事:

多年前,一个叫做 Shay Banon 的刚结婚不久的失业开发者,由于妻子要去伦敦学习厨师,他便跟着也去了。在他找工作的过程中,为了给妻子构建一个食谱的搜索引擎,他开始构建一个早期版本的 Lucene。

直接基于 Lucene 工作会比较困难,所以 Shay 开始抽象 Lucene 代码以便 Java 程序员可以在应用中添加搜索功能。他发布了他的第一个开源项目,叫做“Compass”。

后来 Shay 找到一份工作,这份工作处在高性能和内存数据网格的分布式环境中,因此高性能的、实时的、分布式的搜索引擎也是理所当然需要的。然后他决定重写 Compass 库使其成为一个独立的服务叫做 Elasticsearch。

第一个公开版本出现在 2010 年 2 月,在那之后 Elasticsearch 已经成为 Github 上最受欢迎的项目之一,代码贡献者超过 300 人。一家主营 Elasticsearch 的公司就此成立,他们一边提供商业支持一边开发新功能,不过 Elasticsearch 将永远开源且对所有人可用。

Shay 的妻子依旧等待着她的食谱搜索……

四、参考链接

Elasticsearch: 权威指南