初识
A Distributed RESTful Search Engine
它能让你以一个之前从未有过的速度和规模,去探索你的数据
"A Distributed RESTful Search Engine" 翻译过来就是一个分布式Restful搜索引擎,这句话基本能大致概括Elasticsearch。
如果稍微详细一点呢:
搜索引擎
首先,它是一个搜索引擎:Elastic 的底层是开源库 Lucene,Lucene 可以说是当下最先进、高性能、全功能的搜索引擎库
使用简单
它使全文检索变得简单,通过隐藏 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API,用户可以使用curl(get put post delete方法)来操作数据,同时可以很轻松的使用各种语言的客户端封装库来操作数据(Elastic使用json作为数据载体,所以你完全可以使用http+json库来封装客户端来访问Elasticsearch服务)
分布式
一个分布式实时分析搜索引擎,分布式意味着计算更快,存储容量更大:能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据
一些概念帮助理解
node、cluster(集群)
Elastic 本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个 Elastic 实例。单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。
index(索引)
Elastic 会索引所有字段,经过处理后写入一个反向索引(Inverted Index)。查找数据的时候,直接查找该索引。所以,Elastic 数据管理的顶层单位就叫做 Index(索引)。它是单个数据库的同义词。每个 Index (即数据库)的名字必须是小写。
type(类型)
可以理解为java中的class,标识一中类型,每个类型中有相应的字段。
document(文档)
Index 里面单条的记录称为 Document(文档)。许多条 Document 构成了一个 Index。可以理解为上面type的实例化,一个类型下面有很多document对象。document使用json格式表示,例如如下:
安装
下载安装
运行
此时运行可能报如下错误(报错原因是elasticsearch考虑安全问题默认不允许root用户运行):
解决方法:创建linux新用户,使用新用户运行elasticsearch
创建用户组与用户
设置文件夹、文件所属
切换用户再运行elasticsearch
Tips:安装运行elasticsearch前请确保java版本是1.8及以上,不然会报如下错误
注意:这里最好把elasticsearch的目录放到用户目录下(也就是放到/home/elasticsearch),不然可能报错
检查
打开浏览器,输入http://localhost:9200,能看到类似如下信息则表明elasticsearch服务启动成功
END
领取专属 10元无门槛券
私享最新 技术干货