kibana创建索引文档基本操作

Posted San_Ran

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kibana创建索引文档基本操作相关的知识,希望对你有一定的参考价值。

kibana索引表操作、文档操作

kibana索引表

众所周知,es和数据库的操作十分相似,只是在一些称呼上有所不同,如图

因此,想要在es上存储文档,就得先创建索引(好比想要在数据库存储数据,就得先创建表,才能在表里插入数据)。这次笔者主要是通过kibana进行es相应操作,所以给出kibana对应的索引、文档操作。

索引创建

在创建索引之前,需要弄清楚索引能够定义什么类型的属性,其中常用的有:

- type:字段数据类型。常用的有:
字符串:text(可分词), keyword(精确值,不可分,如国家,ip地址)
数值、布尔、日期、对象
- index:是否创建索引,默认为true(即是否进行分词搜索)
- analyzer:使用哪个分词库,笔者常用的是ik分词器
- properties:一个字段的子字段(即可以在一个字段里创建多个子字段)
知道了这些常用的属性,就可以开始尝试创建索引了:

PUT /index_test

  "mappings": 
    "properties": 
      "name": 
        "type": "object",
        "properties": 
          "firstName": 
            "type": "keyword"
          ,
          "lastName": 
            "type": "keyword"
          
        
      ,
      "email": 
        "type": "keyword",
        "index": false
      ,
      "info": 
        "type": "text",
        "analyzer": "ik_smart"
      
    
  


开头的mappings的作用是实现映射,这里笔者定义了三个字段:
name(含有子字段且子字段不可拆分)、email(不可拆分,不参加索引)、info(通过ik分词器拆分)
执行之后可看到
成功创建索引且返回相应索引字段。
其中es的优势有一点在于,通过Restful风格开发,因此可以对索引、文档进行相应get, put ,delete操作。
可以通过get查看索引:

GET /index_test

#返回结果

  "index_test" : 
    "aliases" :  ,
    "mappings" : 
      "properties" : 
        "email" : 
          "type" : "keyword",
          "index" : false
        ,
        "info" : 
          "type" : "text",
          "analyzer" : "ik_smart"
        ,
        "name" : 
          "properties" : 
            "firstName" : 
              "type" : "keyword"
            ,
            "lastName" : 
              "type" : "keyword"
            
          
        
      
    ,
    "settings" : 
      "index" : 
        "routing" : 
          "allocation" : 
            "include" : 
              "_tier_preference" : "data_content"
            
          
        ,
        "number_of_shards" : "1",
        "provided_name" : "index_test",
        "creation_date" : "1679405762649",
        "number_of_replicas" : "1",
        "uuid" : "QvgWCEFxQZClB_iDUFX8FQ",
        "version" : 
          "created" : "7120199"
        
      
    
  


DELETE /index_test

#返回结果

  "acknowledged" : true


# 再次查询索引
GET /index_test

#返回结果

  "error" : 
    "root_cause" : [
      
        "type" : "index_not_found_exception",
        "reason" : "no such index [index_test]",
        "resource.type" : "index_or_alias",
        "resource.id" : "index_test",
        "index_uuid" : "_na_",
        "index" : "index_test"
      
    ],
    "type" : "index_not_found_exception",
    "reason" : "no such index [index_test]",
    "resource.type" : "index_or_alias",
    "resource.id" : "index_test",
    "index_uuid" : "_na_",
    "index" : "index_test"
  ,
  "status" : 404


由于es对索引表无法修改已有字段,只能在索引新增字段,同样用PUT + /索引名,就不在此演示。

文档创建

文档也是类似Restful风格开发,因此可以通过GET,POST,PUT,DELETE进行增删改查操作
对文档操作的语法为: 关键词 + /索引表/_doc/文档id (如 POST /index_test/_doc_1 )
其中_doc为固定写法,不能省略或更改,文档id为自定义id,若不给出id,es会自动分配id。
文档创建:

POST /index_test/_doc/1 

  "email" : "ikun1314@qq.com",
  "info" : "kibana操作文档创建,还挺方便",
  "name" : 
    "firstName" : "Zhiyin",
    "LastName" : "IKUN"
  

运行输出:

以及result:created说明创建文档成功,
查询文档: GET + /索引名/_doc/文档id

GET /index_test/_doc/1

# 返回结果

  "_index" : "index_test",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 3,
  "_seq_no" : 13,
  "_primary_term" : 1,
  "found" : true,
  "_source" : 
    "email" : "ikun1314@qq.com",
    "info" : "kibana操作文档创建,还挺方便",
    "name" : 
      "firstName" : "Zhiyin",
      "LastName" : "IKUN"
    
  


删除文档: DELETE + /索引名/_doc/文档id

DELETE /index_test/_doc/1

#返回结果

  "_index" : "index_test",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 4,
  "result" : "deleted",
  "_shards" : 
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  ,
  "_seq_no" : 14,
  "_primary_term" : 1


修改文档:分为全量修改以及局部修改。

  • 全量修改: PUT + /索引名/_doc/文档id

     	"字段1" : "值1" ,
     	
     	"字段2" : "值2" ,
     	
     	 "字段3" : "值3"
    


实例:

PUT /index_test/_doc/1

"email" : "ikun1314520@qq.com",
"info" : "kibana操作文档创建,还挺方便",
"name" : 
  "firstName" : "Zhiyin",
  "LastName" : "IKUN"


# 通过GET /index_test/_doc/1查询可得:

"_index" : "index_test",
"_type" : "_doc",
"_id" : "1",
"_version" : 5,
"_seq_no" : 11,
"_primary_term" : 1,
"found" : true,
"_source" : 
  "email" : "ikun1314520@qq.com",
  "info" : "kibana操作文档创建,还挺方便",
  "name" : 
    "firstName" : "Zhiyin",
    "LastName" : "IKUN"
  



  • 局部修改:POST+/索引名/_update/文档id
    “doc” :

     	"字段" : "新的值" 
    


POST /index_test/_update/1

  "doc": 
    "email" : "ikun1314233@qq.com"
  


#通过GET /index_test/_doc/1查询可得:

  "_index" : "index_test",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 6,
  "_seq_no" : 17,
  "_primary_term" : 1,
  "found" : true,
  "_source" : 
    "email" : "ikun1314233@qq.com",
    "info" : "kibana操作文档创建,还挺方便",
    "name" : 
      "firstName" : "Zhiyin",
      "LastName" : "IKUN"
    
  


至此,kibana创建索引和文档的基本操作就演示结束了。

Elastic stack 技术栈学习—— kibana中索引的基本操作(创建删除更新查看)以及关于文档的基本操作

一、Restful风格 

在kibana的创建索引、修改索引、删除索引等操作时,要严格遵循上面url地址的各个字段

二、关于索引的基本操作

1. 创建

(1)创建索引

找到Dev tool(开发工具),左栏就是发送JSON格式的命令的,点击绿色的三角形发送命令,右栏是返回结果。

PS:对于kibana7.0以后的版本,索引的type字段被省略掉了,或者说默认是_doc类型。上面的命令可以改成

POST /test1/zxf
POST /test1/_doc/zxf

然后,在head里查看一下

(2)创建索引规则

PUT /test2

  "mappings":
    "properties": 
       "name":
      "type":"text"
      ,
       "age":
      "type":"long"
      ,
      "sex":
      "type":"text"
      
    
  

 在head里查看一下,test2这个索引里没有文档,是空的。

 2.GET获取信息

(1)获得索引信息

获取索引信息,我们在创建test1时没有指明文档内各个字段的类型,创建test2时,通过规则指定了文档内各个字段的类型(long,text,text)。分别获取看一下区别。

① test2:创建时指定了各个字段的类型。自然返回的结果和我们在上文规定的一样。

② test1:创建时没有指明各个字段的类型。从返回的结果可以看出,es默认识别出并赋予了"name""year"等字段的类型

(2)获得文档信息

  GET不仅可以获取索引信息,还可以具体到索引中每个文档的信息

(3)补充常用命令 GET _cat/... 获取es集群的信息

查看集群的健康值:

GET _cat/health

查看es包含的所有索引的信息:

GET _cat/indices?v


 3. 使用POST命令更新文档

POST test1/_doc/zxf/_update

  "doc":
    "name":"修改后的name"
  

 提交后,返回的结果可以看出修改成功。

 然后去head里面确认一下

4. 删除

(1)删除索引

DELETE test2

 回到head确认一下,test2这个索引不在了。

当然,除了在kibana中通过发送json命令的形式删除索引,在head中也可以手动删除,操作如下

(2)删除索引中的某个文档

DELETE test1/_doc/zxf

 回到head确认一下,文档没有了

 

三、关于文档的基本操作 

以上是关于kibana创建索引文档基本操作的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch基础

ElasticSearch基础

ElasticSearch基础

利用kibana学习 elasticsearch restful api (DSL)

Elasticsearch学习笔记3:关于索引文档的CRUD操作(kibana)

Elasticsearch学习笔记3:关于索引文档的CRUD操作(kibana)