百度百科 :
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch由Java语言开发的,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。
对于满足当下的业务需求和未来支持海量数据的搜索,我选择了Elasticsearch,其实原因主要以下几点:
优点 | 描述 |
横向可扩展性 | 可单机、可集群,横向扩展非常简单方便,自动整理数据分片 |
快 | 索引被分为多个分片(Shard),利用多台服务器,使用了分而治之的思想提升处理效率 |
支持搜索多样化 | 与传统关系型数据库相比,ES提供了全文检索、同义词处理、相关度排名、复杂数据分析、海量数据的近实时处理等功能 |
高可用 | 提供副本(Replica)机制,一个分片可以设置多个副本,假如某服务器宕机后,集群仍能正常工作。 |
开箱即用 | 简易的运维部署,提供基于Restful API,多种语言的SDK |
那么我个人认为Elasticsearch比较大的缺点只有 吃内存,具体原因可以看下文内存读取部分。