ElasticSearch学习笔记(二)—结构了解和索引文档增删改
前面学习了ElasticSearch的概况以及一些配套插件的安装。这篇旨在记录对ES结构的了解和一些基本的操作。
ElasticSearch结构:
对于ES来说,有几个专有名词。比如索引,类型,id这些东西,甚至是倒排插序等等。对于ES来说,ES的基本结构大致为下
拿传统的关系DB对比:
- ElasticSearch相当于关系DB
- 索引(Indices)相当于database数据库
- 类型(type)相当于数据库中的一个表
- 文档(document)相当于表中的某一行
- 字段(field)相当于每一列字段的数据
但是优点不一样的是:关系DB给人的感觉更严谨(还是繁琐),比如他的数据库要进行建立数据库,建表,让才能插值。而ES通过简单的API可以直接插入,如果没有该索引会直接建立。同样,再更改数据也是一样。操作起来更像我们平时用起来的Nosql,map之类。这样的便捷又难免让人担心ES的严谨性,如果不慎的操作可能带来的影响较大,不过还好ES支持文件备份。
ElasticSearch基本操作:增删改查
ES中常用的请求方式有:
- PUT 表示增加
- GET 表示获取
- DELETE 表示删除
- UPDATE 表示更新
ElasticSearch基本操作:增
- 创建索引
PUT bigsai
- 查看是否创建成功
GET _cat/indices?v
- 插入数据(可直接连同索引创建)
再次GET _cat/indices?v
查看发现索引直接被创建。其中
_index 表示哪个索引
_type 表示哪个表
_id 主键
_version 版本
found 数据存在
_source: 数据内容
ElasticSearch基本操作:删
- 删除数据
直接DELETE {索引}/{类型}/{主键} 即可
可能会好奇get 后面的pretty干啥的,百度上说没啥大用,是为了简洁给出的结果。 - 删除索引
DELETE {索引名称}
可以看到前面的bigsai索引已经被删除了。
ElasticSearch基本操作:改
修改数据有两种方式:第一种类似插入覆盖的思想,第二种比较纯正,但是效果一致
查看数据,直接GET下去,查询索引,GET _cat/indices?v
附上上述操作的一些指令,再kibana中进行。http://localhost:5601/app/kibana#/dev_tools/console?_g=()
PUT index1/type1/id1
{
"name":"test"
}
GET _cat/indices?v
GET index1/type1/id1?pretty
PUT index1/type1/id2
{
"school":"just"
}
GET index1
DELETE index1/type1/id1
GET index1/type1/id1?pretty
DELETE bigsai
GET _cat/indices?v
PUT index1/type1/id2
{"school":"江科大"}
POST index1/type1/id2/_update
{"doc":{"school":"江科大"}}
GET index1/type1/id2?pretty
学会这些,对ES结构有了初步了解,能够简单呃储存信息。下一步学习目标:学习一些主要查询—>结合javaAPI—>在服务器环境运行。