ElasticSearch学习笔记(二)—结构了解和索引文档增删改

前面学习了ElasticSearch的概况以及一些配套插件的安装。这篇旨在记录对ES结构的了解和一些基本的操作。

ElasticSearch结构:

对于ES来说,有几个专有名词。比如索引,类型,id这些东西,甚至是倒排插序等等。对于ES来说,ES的基本结构大致为下

ElasticSearch
索引1
......
......
类型1
......
......
文档1
......
字段1
字段2
字段3
......

拿传统的关系DB对比:

  • ElasticSearch相当于关系DB
  • 索引(Indices)相当于database数据库
  • 类型(type)相当于数据库中的一个表
  • 文档(document)相当于表中的某一行
  • 字段(field)相当于每一列字段的数据

但是优点不一样的是:关系DB给人的感觉更严谨(还是繁琐),比如他的数据库要进行建立数据库,建表,让才能插值。而ES通过简单的API可以直接插入,如果没有该索引会直接建立。同样,再更改数据也是一样。操作起来更像我们平时用起来的Nosql,map之类。这样的便捷又难免让人担心ES的严谨性,如果不慎的操作可能带来的影响较大,不过还好ES支持文件备份。

ElasticSearch基本操作:增删改查

ES中常用的请求方式有:

  • PUT 表示增加
  • GET 表示获取
  • DELETE 表示删除
  • UPDATE 表示更新

ElasticSearch基本操作:增

  1. 创建索引
    PUT bigsai
  2. 查看是否创建成功
    GET _cat/indices?v
    ElasticSearch学习笔记(二)—结构了解和索引文档增删改
    ElasticSearch学习笔记(二)—结构了解和索引文档增删改
  3. 插入数据(可直接连同索引创建)
    ElasticSearch学习笔记(二)—结构了解和索引文档增删改
    ElasticSearch学习笔记(二)—结构了解和索引文档增删改
    再次GET _cat/indices?v查看发现索引直接被创建。其中
    _index 表示哪个索引
    _type 表示哪个表
    _id 主键
    _version 版本
    found 数据存在
    _source: 数据内容

ElasticSearch基本操作:删

  1. 删除数据
    直接DELETE {索引}/{类型}/{主键} 即可
    ElasticSearch学习笔记(二)—结构了解和索引文档增删改
    可能会好奇get 后面的pretty干啥的,百度上说没啥大用,是为了简洁给出的结果。
  2. 删除索引
    DELETE {索引名称}
    ElasticSearch学习笔记(二)—结构了解和索引文档增删改
    可以看到前面的bigsai索引已经被删除了。

ElasticSearch基本操作:改
修改数据有两种方式:第一种类似插入覆盖的思想,第二种比较纯正,但是效果一致
ElasticSearch学习笔记(二)—结构了解和索引文档增删改

查看数据,直接GET下去,查询索引,GET _cat/indices?v

ElasticSearch学习笔记(二)—结构了解和索引文档增删改

附上上述操作的一些指令,再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—>在服务器环境运行。