• QQ空间
  • 回复
  • 收藏

ElasticSearch7索引的操作

东方头条 2019-11-19 17:07:31 科技

ElasticSearch是基于RESTful API的方式来进行操作的,也就是写一系列的JSON方式的请求,那么常用的操作有哪些呢?

一.新建索引

索引的概念相当于mysql中的数据库,一个索引对应一个数据库,新建索引的语法为:

创建索引的方式为PUT请求,xu为索引名字,_doc代表文档,1代表创建id为1的文档,大括号里面的就是id为1的文档的具体字段。为什么没有类型呢?因为在ElasticSearch7.0及以上的版本中已经把类型这个概念给废弃掉了,统一用"_doc"这个占位符来表示"_type",你可以把"_type"看作是文档就行了,相当于ElasticSearch7.0及以上版本只有索引和文档这两个概念了。

创建完之后,会看到如下信息:

可以在Index Management界面查看索引信息:

点击索引进去还能看到很多具体的信息:

我们新建的索引字段"name"和"from"虽然没有指定类型但是ElasticSearch7.0会自动帮我们识别出来,像我定义的“from”和"name"字段被识别出来的类型是text类型:

我们也可以在创建索引的时候指定主分片和从分片的数量,如何不指定则默认都为1。

然后再跟上面步骤一样再创建我们的文档数据就可以了。

二.修改索引

修改索引也很简单,我们直接在定义索引的地方直接修改就行了,

执行之后,数据就修改成功了:

系统会判断你进行PUT操作的时候,id存不存在,存在就进行修改操作,不存在就进行新增操作。

当然修改的时候不单单可以修改字段的值,你还可以添加或者删除某些字段,也就是说如果我们用PUT请求修改数据,不管你有没有修改某些字段的值,你都要把它写进去。所以这个修改操作是全量更新的操作。

也有只更新指定字段的修改操作,用POST请求:

这样我们只修改了"name"字段,其他的字段不影响:

还有一种方式是我们强制指定要新增文档,如果文档id存在就返回失败信息:

由于/xu这个索引中id为1的文档已经存在了,所以这种情况就会创建失败:

三.查找索引

查找直接用GET请求+索引+文档id就可以查找到数据了:

结果为:

四.删除索引

删除索引的方式很简单,直接DELETE+索引名字就行了:

有关ElasticSearch7索引的基础操作先介绍到这里,后面文章还有很多语法操作介绍。