当前位置:   article > 正文

初识ElasticSearch(1) - 索引 | 映射 | 文档 | 简单操作_elasticsearch的@document创建了索引但没有映射

elasticsearch的@document创建了索引但没有映射

  • 本系列笔记结合HTTP请求(使用postman调用,源文件见GitHub)和ElasticsearchRestTemplate进行调用学习
  • ElasticsearchRestTemplate封装了RestHighLevelClient,有些场景还得用RestHighLevelClient来操作
  • 版本说明:使用的SpringBoot-2.3.5,对应的ElasticSearch-7.6.2;所以还是可以用RestHighLevelClient
  • ElasticSearch-7.15后就弃用了RestHighLevelClient,可见官网文档,之后的版本可以开启客户端兼容来维持正常使用
0. 基础认识:
  • 索引相当于MYSQL的数据库实例
  • 映射相当于MYSQL的表表结构(字段和类型)
  • 文档相当于MYSQL的每一行数据
1. 索引操作:

索引操作主要有创建,删除,关闭,打开,别名等

1.1. 索引创建
  • 请求体的mapping即为映射,如果不写则不指定字段类型,则添加文档时会自动映射,下文第二节会讲
  • settings中设置索引的配置项,比如主分片数和副分片数

·

【HTTP请求】:
·
在这里插入图片描述
【API请求】:实体类要标注@Document、@Field这些信息
·
在这里插入图片描述
在这里插入图片描述

1.2. 索引删除

【HTTP请求】:
·在这里插入图片描述
【API请求】:
·
在这里插入图片描述

1.3. 索引关闭和开启

关闭索引之后ES索引只负责数据存储,不能提供文档操作,直到索引再次打开

【HTTP请求】:
·在这里插入图片描述
在这里插入图片描述
【API请求】:ElasticsearchRestTemplate没有API,可以使用RestHighLevelClient客户端来操作
·在这里插入图片描述

1.4. 索引查询:

【HTTP请求】:查询指定索引
·在这里插入图片描述
【HTTP请求】:查询所有索引
·在这里插入图片描述
【API请求】:查询指定索引
·在这里插入图片描述

2. 映射操作:

映射类似于关系型数据库的表结构,ES可以自动动态映射也可以手动静态映射,建议用户手动创建。

  • 动态映射:插入文档,es可以根据插入的文档(数据),动态的创建映射(表结构)
  • 静态映射:创建索引时,手动添加文档映射,像上述1.1的mapping

·

在这里插入图片描述

2.1. 查看索引映射

【HTTP请求】:
·在这里插入图片描述
【API请求】:
·在这里插入图片描述

2.2. 扩展映射(新增字段)

【已经建好映射,但需要扩展新的字段,怎么办?】

  • 如果原有索引还没有文档数据,则可以删除索引重新创建
  • 如果原有索引已经有文档数据,则可以在原有映射扩展字段

【HTTP请求】:像上述1.1创建索引时已有title、category映射,现新增content映射
·在这里插入图片描述
【API请求】:在实体类添加@Field注解或重新putMapping即可

·
indexOperations.putMapping(indexOperations.createMapping(Blog.class));

2.3. 数据迁移(重建索引)

对于已有的索引映射,我们不能直接修改映射,比如修改上述content映射类型为keyword,这时不允许的

  • 如果原有索引还没有文档数据,则可以删除索引重新创建
  • 如果原有索引已经有文档数据,则可以创建新的索引,把老的文档迁移(_reindex)过来

【HTTP请求】:像上述1.1创建索引时已有title、category映射,现新增content映射
·在这里插入图片描述在这里插入图片描述

【API请求】:RestHighLevelClient客户端来操作*
·
在这里插入图片描述

3. 文档操作:根据id进行CURD

这里仅是简单的CURD操作,根据文档id进行操作,后续根据Query操作见链接(待补充)

3.1.添加文档

【HTTP请求】:创建一个blog文档并设置文档id为1,不指定的话会随机生成字符串id
·在这里插入图片描述
【API请求】:save方法,实体类@Id会自动递增id
·在这里插入图片描述

3.2.全量修改文档:
  • HTTP请求时,如果请求体字段缺失,则查询不会显示缺失的字段
  • API请求时,如果请求体字段缺失,则会显示默认值

【HTTP请求】:PUT 全量修改- 如果文档id不存在则会新建文档
·在这里插入图片描述
【API请求】:同样是save方法,如果文档id不存在则会新建文档,存在则全量修改
·在这里插入图片描述
无法只修改某个字段,只能覆盖所有字段。若某个字段没有值,则会写入null

3.3.局部修改文档:

可以修改局部字段,其余字段不变

【HTTP请求】:POST 局部修改- 如果文档id不存在则异常
·在这里插入图片描述
【API请求】:update方法,如下只修改content字段,如果文档id不存在则异常
·在这里插入图片描述

3.4.查询文档:

【HTTP请求】:查询指定文档id文档
·在这里插入图片描述
【HTTP请求】:查询所有
·在这里插入图片描述
【API请求】:get方法 - 查询指定文档id数据
·在这里插入图片描述
【API请求】:search方法 - 所有文档
·在这里插入图片描述

3.5.删除文档:

【HTTP请求】:DELETE 如果id不存在则404
·在这里插入图片描述
【API请求】:delete方法,文档id不存在不会异常
·在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/853944
推荐阅读
相关标签
  

闽ICP备14008679号