一、es是什么
es是基于Apache Lucene的开源分布式(全文)搜索引擎,提供简单的RESTful API来隐藏Lucee的复杂性。
es除了全文搜索引擎之外,还可以这样描述:
1.分布式的实时文件存储,每个字段都被索引并可被搜索
2.分布式的实时分析搜索引擎
3.可以扩展到成百上千台服务器,处理PB级结构化或非机构化数据。
二、es的下载和安装
Java for windows
es对于java JDK的版本有需求,必须是Java1.8及以上
安装步骤参考:
https://www.cnblogs.com/Neeo/articles/10368280.html
es for windows
es开箱即用,也就是解压缩即可以使用
安装参考https://www.cnblogs.com/Neeo/articles/10371306.html
Kibana for windows
Kibana是一个ElasticSearch提供的数据分析的Web接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作
安装参考:https://www.cnblogs.com/Neeo/articles/10371213.html
三、es的使用
1.es的数据组织
逻辑:索引>类型>文档
2.与关系型数据库做对比
关系型数据库 | es |
数据库 | 索引indeces |
表 | type |
记录 | documents |
字段 | 字段fields |
3.文档
(1)文档的特性:自我包含、层次性、结构灵活、无模式
(2)类型:在es6.X版本开始,一个索引下面只能有一个类型,类型是文档的容器,并且,类型记录了字段和值的映射关系
(3)索引:索引是映射类型的容器,elasticseaarch中的索引是一个非常大的文档集合。索引存储了映射类型的字段和其他设置。然后他们被存储到了各个分片上了。
4.物理:节点、分片
(1)节点,一个集群至少有一个节点,节点内可以有多个索引。在创建索引时,默认创建5个主分片,每个主分片搭配一个复制分片。
(2)分片:文档存储在各个分片上,一个分片也是一个Lucene索引
(3)倒排索引:倒排索引时一个包含不重复词条的文档,我们称该文档为倒排文档。(详情请参考维基百科)
(4)es的索引和Lucene的索引对比
es的索引是由多个分片组成,而每个分片则时一个Lucene索引
一个Lucene索引能存储不超过21亿篇文档,或者不超过2740亿个唯一词条。
四、基本操作
1.简单操作
PUT test/doc/1 { "name":"TOM" } PUT test/doc/2 { "age":"10" } PUT test/doc/3 { "hobby":"play" }
上面例子中,我们添加了3篇文档,首先检索test是否存在,不存在先创建,存在则添加(或更新)文档。
GET test/doc/1 # 查看指定文档 GET test/doc/_search # 查看所有文档 GET test/doc/_search?q=name:TOM # 按条件查询
这个是一些简单的查询语句。
其他的查询
GET test/_mapping # 查看索引的映射类型 GET test/_settings # 查看索引的设置信息 GET test # 查看索引的详情
删除操作
DELETE test/doc/1 # 删除指定文档 DELETE test # 删除索引