Elasticsearch(一)--基本的操作和介绍

说明:该博客对应的Elasticsearch 的版本为7.8.0;测试工具为postman

1.数据格式

Elasticsearch是面向文档型数据库一条数据就是一个文档,将Elasticsearch里存储文档数据和关系型数据库mysql存储做一个对比.

ES 里的 Index 可以看做一个库,而 Types 相当于表,Documents 则相当于表的行。 这里 Types 的概念已经被逐渐弱化,Elasticsearch 6.X 中,一个 index 下已经只能包含一个 type,Elasticsearch 7.X , Type 的概念已经被删除了

2.文档CRUD命令

 Elasticsearch分布式,restful风格的搜索和分析

PUT:创建或者修改

DELETE:删除

GET:获取

POST:创建

重点:post和put的区别

(1)如果确定文档的ID,PUT和GET都可以,如果ID存在就是创建,ID不存在就是修改.

(2)PUT、GET、DELETE是幂等的,而POST并不一定是幂等。如果POST也指定了ID和PUT没有区别,它也是幂等。如果你没有指定文档ID那么就不是幂等操作,因为同一数据,你执行多次POST,那么生成多个UUID的文档,也就是每POST一次都会新增一条数据。

2.1创建文档

2.1.1,创建空索引(mysql中创建一个空的数据库):

Put请求(注意创建空索引时不能使用post请求)

PUT  http://localhost:9200/shopping

执行结果

2.1.2,post创建文档(mysql中有数据的数据库)不指定文档id

 POST  http://localhost:9200/shopping/_doc

{

    "name":"zhangsan",

    "age":"23",

    "sex":"男"

}

执行结果

 2.1.3使用post创建指定id的文档

 POST    http://localhost:9200/shopping/_doc/1001

 {      

        "money": "1002",

        "date": "2021-07-31",

        "owner": "hejiaojiao"

  }

执行结果 

 2.1.4,使用put创建指定id文档 

PUT   http://localhost:9200/shopping/_doc/1001

{
    "name":"zhangsan",
    "age":"23",
    "sex":"男"
}

 2.2查询文档

2.2.1查询所有文档

GET  http://localhost:9200/shopping/_search  

执行结果 

2.2.2根据id查询文档

GET  http://localhost:9200/shopping/_doc/1001

执行结果

 各个标签的介绍

_index 文档所属索引名称。

_type 文档所属类型名。

_id Doc的主键。在写入的时候,可以指定该Doc的ID值,如果不指定,则系统自动生成一个唯一的UUID值。

_version 文档的版本信息。Elasticsearch通过使用version来保证对文档的变更能以正确的顺序执行,避免乱序造成的数据丢失。

_seq_no 严格递增的顺序号,每个文档一个,Shard级别严格递增,保证后写入的Doc的_seq_no大于先写入的Doc的_seq_no。

primary_term primary_term也和_seq_no一样是一个整数,每当Primary Shard发生重新分配时,比如重启,Primary选举等,_primary_term会递增1

found 查询的ID正确那么ture, 如果 Id 不正确,就查不到数据,found字段就是false。

_source 文档的原始JSON数据。

 2.3删除文档

 2.3.1删除索引及所有文档

DELETE    http://localhost:9200/shopping

 2.3.2根据ID删除文档(mysql中根据id删除整行数据)

 DELETE  http://localhost:9200/shopping/_doc/1001

2.3.2 根据筛选条件批量删除

1.可以通过delete_by_query对要删除的doc进行条件过滤,具体语法如下:
POST {index}/_delete_by_query
{
"query": {
   "bool":{
       "must":[
          {

              "range":{

                 "endTime":{ 

                    //大于

                    "gt":1100010   

              }

          }   

          } ,

          {

             "term":{

                "deviceIp":"10.8.5.204"     

           }

        }  

     ]

   }
  }

}

 2.4更新文档

 PUT和POST执行的时候,如果指定的文档ID存在,那么就可以执行更新操作。不过它们执行的是全量更新(修改单个字段时也要带上其他字段,更新一次"_version"加一),如果需要单独对某字段更新我们可以使用关键字_update(POST)

 POST  http://localhost:9200/shopping/_update/1001

{
   "doc":{
       "money":"update1003" #{要修改的字段}
   }
}

 执行结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值