引言
从本文开始主要介绍当下比较火的Elasticsearch
相关的内容。学习一项新技术大致会按照这项技术是什么、它可以解决什么问题,如何使用、使用的原理是什么我们能做什么样的拓展这样的套路来进行。那本文主要介绍Elasticsearch
是什么以及能解决什么问题。
- 基本概念
Elasticsearch
安装- 总结
一、基本概念
1、Elasticsearch
是什么
Elasticsearch
是一个基于Apache Lucene(TM)的开源搜索引擎。它是一个分布式、RESTful 风格的搜索和数据分析引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎。Elasticsearch支持分布式,可以轻松扩展至
2、Elasticsearch主要解决什么问题
当数据达到亿级别时,我们想搜索数据
3、Elasticsearch核心概念
下表为关系性数据库与Elasticsearch之间的概念对比,如下所示:
RDBMS | Elasticsearch |
Table | Index(Type) |
Row | Document |
Column | Field |
Schema | Mapping |
SQL | DSL |
NRT(Near Realtime)
Elasticsearch是近实时的,它是个分布式系统,不但要对数据进行持久化同时需要将数据解构 为方便进行全文检索的数据结构。
Node
节点就是Elasticsearch的实例,主要x向外界提供数据的存储以及集群的搜索与索引功能。节点的名字全局唯一。
Cluster
集群,所谓集群即为一个节点或者多个节点的集合。共同提供存储以及全文检索的服务。集群的名称也是全局唯一的,Elasticsearch集群是自组织的,只需要将节点指定为对应集群名称下的节点即可。
Document
所谓文档,即相当于关系型数据库中的一行数据。文档是构建索引的基本单元。譬如一条用户数据、一条订单数据都可以看作为一个文档。文档都是以Json格式进行描述,Json是一种普遍使用的互联网数据格式。在index中可以存储任意数量的文档。
Index
分为两层意思,一是建立索引,而是对应的索引文件。索引一个文档就是存储一个文档到一个索引 (名词)中以便被检索和查询。
Shard and Replicas
Elasticsearch是分布式搜索引擎,每个索引都有一个或多个分片,索引的数据被分配到各个分片上, 这就相当于一堆沙子可以由不同的容器来装。
复制即为分片的备份。
4、Elasticsearch特性
(1)分布式高可用搜索引擎
(2)多租户
支持多个索引
支持索引级别配置
(3)丰富的API
提供HTTP RESTful API接口,便于调用集成
Java 本地 API
所有API都执行自动节点操作重路由
(4)面向文档
不需要预先定义模式
模式可以用来对索引过程进行自定义
(5)可靠的异步写后置,可实现长期持久性
(6)近实时查询
(7)以Lucene库为基础
每个分片都是一个功能齐全的Lucene索引
Lucene的所有功能都很容易通过简单的配置/插件暴露出来
(8)每次操作保持一致性
单文档级别的操作具有原子性、一致性、隔离性和持久性
二、Elasticsearch
安装
下载网址:https://www.elastic.co/cn/downloads/
Github地址:https://github.com/elastic/elasticsearch
Elasticsearch
安装目录如下:
目录名称 | 配置文件 | 功用描述 |
bin | 包含很多脚本文件,如启动脚本等,安装插件还有其他 | |
config | elasticsearch.yml | 集群配置文件、user等配置信息 |
jdk | java运行环境 | |
data | path.data | 运行数据文件 |
lib | path.data | java的类库 |
logs | path.log | 相关日志文件 |
plugins | 包含所有已安装插件 |
三、总结
本文主要介绍了Elasticsearch
是什么以及解决什么样的问题可以用到它,同时对Elasticsearch
的核心概念以及安装做了说明,旨在让大家对Elasticsearch
有个初步的认识。