3.1 Elasticsearch简介

Elasticsearch是一个分布式、可扩展、近实时的高性能搜索与数据分析引擎。Elasticsearch基于Apache Lucene构建,采用Java编写,并使用Lucene构建索引、提供搜索功能。Elasticsearch的目标是让全文搜索功能的落地变得简单。

Elasticsearch的特点和优势如下:

① 分布式实时文件存储。Elasticsearch可将被索引文档中的每一个字段存入索引,以便字段可以被检索到。

② 实时分析的分布式搜索引擎。Elasticsearch的索引分拆成多个分片,每个分片可以有零个或多个副本。集群中的每个数据节点都可承载一个或多个分片,并且协调和处理各种操作;负载再平衡和路由会自动完成。

③ 高可拓展性。大规模应用方面,Elasticsearch可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。当然,Elasticsearch也可以运行在单台PC上。

④ 可插拔插件支持。Elasticsearch支持多种插件,如分词插件、同步插件、Hadoop插件、可视化插件等。

根据最新的数据库引擎排名显示,Elasticsearch、Splunk和Solr分别占据了数据库搜索引擎的前三位,如图3-1所示。

图3-1