一.ES的介绍
1.1基本概念
分布式全文搜索引擎。
ES即为了解决原生Lucene使用的不足,优化Lucene的调用方式,并实现了高可用的分布式集群的搜索方案。
1.2特点
- 基于Lucene
- 使用简单
- 分布式的
- 基于Restful API(http)
- 支持多语言客户端(java,php。。)
- PB级别数据
- 性能好,速度高(近实时)
- 支持集群
- ES处理JSON格式的数据
二.ES的安装
-
安装ES
下载好直接解压就行
-
kibana 可视化管理工具
下载好直接解压就行
-
启动ES
bin目录中双击启动
验证:http://localhost:9200/
出现上图信息,ES集群启动正常,并且正常运行 -
启动kibana
bin目录中双击启动
测试:http://localhost:5601
三.ES文档相关概念
ES是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。
特征:
- 近实时 存储速度快
- index 索引库 ----> 类似数据库
- 文档类型 type ----> 类似表
- 文档 document ----> 类似表中的一行一行数据
- 列 field ----> 一个document由多个列组成 ----> 类似表中的列
- 集群 ----> 包括了多个node(一个es,一台电脑) ,默认名字“elasticsearch”
- 节点 node /一个主机/一个ES ----> node 默认启动会加入名字叫 “elasticsearch”的集群
- shard : 分片 , 一个索引库被分成多个分片,多个分片分散在不同的 node上 -> 像数据库的分库
- replica : shard分为 parmary shard 主分片, replica备分片
一个主shard不能和它的备shard在一个node上
非一对主shard和备shard可以在一个node上
主shard的数量不能修改,备shard可以修改
四.ES文档操作
4.1创建文档
PUT /索引库/文档类型/文档id
{
json格式的文档内容
}
方式一
:自己的ID创建
PUT /word/person/6
{
"id":6,
"name":"aa bb hh",
"age":22
}
方式二
:内置ID创建 AXAZyfoL0mroMPUSAxIj
POST /word/person
{
"id":2,
"name":"aa cc",
"age":20
}
4.2获取文档
-
内置id获取:
GET /word/person/AXAZyfoL0mroMPUSAxIj -
指定字段:
GET /word/person/GET /word/person/1?_source=name -
查看所有字段:
GET /word/person/GET /word/person/1/_source -
自己的文档ID获取:
GET /word/person/GET /word/person/1
4.3修改文档
没有修改的字段会丢失
POST /word/person/1
{
"name":"aa bb cc",
"age":22
}
局部修改,只修改列出的字段
POST /word/person/1/_update
{
"doc":{
"name":"aa dd"
}
}
4.4删除文档
DELETE /word/person/1
To be continued…