Elasticsearch简介

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,能够达到实时、稳定、可靠、快速搜索。也可以看做是布式的实时文件存储,每个字段都能被索引并可被搜索。

ElasticSearch就是为高可用和可扩展而生的。可以通过购置性能更强的服务器或者升级硬件来完成系统扩展,称为垂直或向上扩展(Vertical Scale/Scaling Up)。另一方面,增加更多的服务器来完成系统扩展,称为水平扩展或者向外扩展(Horizontal Scale/Scaling Out)。尽管ES能够利用更强劲的硬件,垂直扩展毕竟还是有它的极限。真正的可扩展性来自于水平扩展,通过向集群中添加更多的节点来分担负载,增加可靠性。ES天生就是分布式的:它知道如何管理多个节点来完成扩展和实现高可用性。这也意味你的应用不需要做任何的改动。

实际项目开发实战中,几乎每个系统都会有一个搜索的功能,当数据达到很大且搜索要做到一定程度时,维护和扩展难度就会越来越高,并且在全文检索的速度上、结果内容的推荐、分析以及统计聚合方面也很难达到我们预期效果。

这时候Elasticsearch就出现了。Elasticsearch能建立全文索引(把文本中的内容拆分成若干关键词,然后根据关键词创建索引。查询时根据关键词查询索引,最终找到包含关键词的文章),它将数据和索引分离,把索引分片,分布式的保存到不同节点,节点可以扩展到上百个,能实时检索、处理PB级别的结构化或非结构化数据。同时分片可以进行副本备份保证数据的可靠性,各分片副本协同工作也大大提高检索性能,且通过简单的RESTful API让全文搜索变得高效简单。


近年ElasticSearch发展迅猛,已经超越了其最初的纯搜索引擎的角色,现在已经增加了数据聚合分析(aggregation)和可视化的特性,如果你有数百万的文档需要通过关键词进行定位、分析统计时,ElasticSearch肯定是最佳选择。

你可能感兴趣的:(Elasticsearch简介)