ElasticSearch学习系列(二)简单创建数据

上一节我们安装好了kibana,打开DevTools。

一、新增数据

1.不指定ID。

############Create Document############
#create document. 自动生成 _id
POST users/_doc
{
	"user" : "Mike",
    "post_date" : "2019-04-15T14:12:12",
    "message" : "trying out Kibana"
}

 

执行结果(点击播放箭头):

 

 

 

我们看到,索引_index,_type分别对应着 POST后面的 users/_doc 。

这里需要指出的 _type默认全部为_doc,后面在介绍。

在elasticsearch中,有一个很重要的概念叫做索引,关系型数据库里面的每一行数据可以理解成一个文档,文档是最小单元。

index-索引是一类文档的结合,你可以理解成是表的定义(包含字段名称,字段类型),文档是它里面的行数据。

 

 

 

2.指定ID

#create document. 指定 ID 如果已经存在,就报错
PUT users/_create/1
{
     "user" : "Jack",
    "post_date" : "2019-05-15T14:12:12",
    "message" : "trying out Elasticsearch"
}

 

细心的同学可能发现,这里的请求类型是PUT,如果要指定ID,必须要使用PUT请求。

PUT  user/_create/1

POST  user/_doc

我们发现两个变化,PUT请求索引后面,带了一个_create关键字以及多了一个id值1。

如果指定了ID,提交多次,将会返回错误信息:

{
  "error" : {
    "root_cause" : [
      {
        "type" : "version_conflict_engine_exception",
        "reason" : "[1]: version conflict, document already exists (current version [1])",
        "index_uuid" : "tz9y9j6XQnKYOcB3qXSJBQ",
        "shard" : "0",
        "index" : "users"
      }
    ],
    "type" : "version_conflict_engine_exception",
    "reason" : "[1]: version conflict, document already exists (current version [1])",
    "index_uuid" : "tz9y9j6XQnKYOcB3qXSJBQ",
    "shard" : "0",
    "index" : "users"
  },
  "status" : 409
}

注意,reason:“[1]" 这里的1指的是id值。

3.通过参数形式指定操作类型:

PUT users/_doc/1?op_type=create
{
    "user" : "Jack",
    "post_date" : "2019-05-15T14:12:12",
    "message" : "trying out Elasticsearch"
}

这种方式通过 op_type=create指定是创建。

这个对于程序调用来说,将能够动态的切换不同操作类型,比如 update...

 

OK,我们已经成功插入了数据,但我们出了api接口返回结果通知之外,我们如何在kibana界面上面查看呢?

 

 找到左侧菜单,点击Stack Management菜单。

 

 

找到IndexManage 可以看到我们的 索引  users(表概念)

 

 可以看到 一共有8条文档数据,如果需要查看具体doc数据内容需要用查询语句执行,也可以用其他插件,后面再介绍。

 




posted @ 2020-11-03 11:43  有味猫  阅读(446)  评论(0)    收藏  举报