目录
elasticsearch
简介
elasticsearch
(简称 ES
)是一个基于 Lucene
的开源搜索引擎,它不但稳定、可靠、快速,而且也具有良好的水平扩展能力,是专门为分布式环境设计的,elasticsearch
是面向文档型数据库,这意味着它存储的是整个对象或者文档,它不但会存储它们,还会为他们建立索引,这样你就可以搜索他们了。你可以在 elasticsearch
中索引、搜索、排序和过滤这些文档,不需要成行成列的数据,elasticSearch
提供了一套基于 restful
风格的全文检索服务组件
elasticsearch
有一条完整的产品线:Elasticsearch、Logstash、Kibana
等,前面说的三个就是大家常说的 ELK
技术栈
特性
- 安装方便:没有其他依赖,下载后安装非常方便;只用修改几个参数就可以搭建起来一个集群
JSON
:输入/
输出格式均为JSON
格式数据,不需要定义Schema
,快捷方便RESTful
:基本所有操作(索引、查询、甚至是配置)都可以通过HTTP
接口进行- 分布式:节点对外表现对等(每个节点都可以用来做入口);加入节点自动均衡
- 多租户:可根据不同的用途分索引;可以同时操作多个索引
- 准实时:从文档索引到可以被检索只有轻微延时,约
1s
- 支持插件机制,分词插件、同步插件、
Hadoop
插件、可视化插件等
elasticsearch
使用 Lucene
作为内部引擎,但是在使用它做全文搜索时,只需要使用统一开发好的 API
即可,而不需要了解其背后复杂的 Lucene
的运行原理。当然 elasticsearch
并不仅仅是 Lucene
这么简单,它不但包括了全文搜索功能,还可以进行以下工作
- 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索
- 实时分析的分布式搜索引擎
- 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据
- 这么多的功能被集成到一台服务器上,你可以轻松地通过客户端或者任何你喜欢的程序语言与
elasticsearch
的RESTful API