Elasticsearch 可以实现秒级的搜索,cluster 是一种分布式的部署,极易扩展 (scale) 这样很容易使它处理 PB 级的数据库容量。最重要的是 Elasticsearch 使它搜索的结果可以按照分数进行排序,它能提供我们最相关的搜索结果(relevance) 。
一、概述
特点
-
安装方便: 没有其他依赖,下载后安装非常方便;只用修改几个参数就可以搭建起来一个集群;
-
JSON: 输入 / 输出格式为 JSON,意味着不需要定义 Schema,快捷方便;
-
RESTful: 基本所有操作 (索引、查询、甚至是配置) 都可以通过 HTTP 接口进行;
-
分布式: 节点对外表现对等(每个节点都可以用来做入口) 加入节点自动负载均衡;
-
多租户: 可根据不同的用途分索引,可以同时操作多个索引;
-
支持超大数据: 可以扩展到 PB 级的结构化和非结构化数据 海量数据的近实时处理;
功能
-
分布式的搜索引擎
分布式:Elasticsearch 自动将海量数据分散到多台服务器上去存储和检索。
-
全文检索
提供模糊搜索等自动度很高的查询方式,并进行相关性排名,高亮等功能。
-
数据分析引擎(分组聚合)
社区网站,最近一周用户登录、最近一个月各功能使用情况。
-
对海量数据进行近实时(秒级)的处理
海量数据的处理:因为是分布式架构,可以采用大量的服务器去存储和检索数据。
场景
-
搜索类场景
比如说人员检索、设备检索、App 内的搜索、订单搜索。
-
日志分析类场景
经典的 ELK 组合**(Elasticsearch/Logstash/Kibana),实现日志收集,日志存储,日志分析。**
-
数据预警平台及数据分析场景
例如社区团购提示,当优惠的价格低于某个值时,自动触发通知消息,通知用户购买。
分析竞争对手商品销量 Top10,供运营分析等等。
-
商业 BI(Business Intelligence) 系统
比如社区周边,需要分析某一地区用户消费金额及商品类别,