1.ElasticSearch 简介
1.1 Lucene
Lucene 是一个开源、免费、高性能、纯 Java 编写的全文检索引擎,可以算作是开源领域最好的全文检索工具包。在实际开发中,Lucene 几乎适用于任何需要全文检索的场景,所以 Lucene 先后发展出好多语言版本,例如 C++、C#、Python 等。
早在 2005 年,Lucene 就升级为 Apache 顶级开源项目。它的作者是 Doug Cutting,有的人可能没听过这这个人,不过你肯定听过他的另一个大名鼎鼎的作品 Hadoop。
不过需要注意的是,Lucene 只是一个工具包,并非一个完整的搜索引擎,开发者可以基于 Lucene 来开发完整的搜索引擎。比较著名的有 Solr、ElasticSearch,不过在分布式和大数据环境下,ElasticSearch 更胜一筹。
Luene特点:
- 使用简单
- 跨语言
- 强大的搜索引擎
- 索引速度快
- 索引文件兼容不同平台
1.2 ElasticSearch
ElasticSearch 是一个分布式、可扩展、近实时性的高性能搜索与数据分析引擎。ElasticSearch基于Java编写,通过进一步封装Lucene, 将搜索的复杂性屏蔽起来,开发者只需要一套简单的Restful API就可以操作全文检索。
ElasticSearch 在分布式环境下表现优异,这也是它比较受欢迎的原因之一。它支持PB级别的结构化或非结构化海量数据处理。
整体来说ElasticSearch 有三大功能:
- 数据搜集
- 数据分析
- 数据存储
ElasticSearch的主要特点:
- 分布式文件存储
- 实时性的分布式搜索引擎
- 高可拓展性
- 可插拔的插件支持