ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

es7.+(一)检索

2021-03-02 19:04:10  阅读:234  来源: 互联网

标签:es7 检索 .+ index blog customer external type id


1.初步检索

1.1_cat

GET /_cat/nodes: 查看所有节点
GET /_cat/health:查看es健康状况
GET /_cat/master:查看主节点信息
GET /_cat/indices:查看所有索引相当于mysql的showdatabase

1.2索引一个文档(保存)

保存一个数据,保存在哪个索引的哪个类型下,指定用哪个唯一标识
PUT customer/external/1 :在customer索引下的external类型下保存1号数据为

    {
        "name": "JSON Doe"
    }
  • 获取结果
    带"_"都称为元数据
{
    "_index": "customer",//数据在哪个索引下
    "_type": "external",//在哪个类型下
    "_id": "1",//数据的id
    "_version": 2,//数据的版本,每更新一次版本都会升级
    "result": "created"//新建    //第二次是为"updated",
    "_shards": { //分片
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 1,
    "_primary_term": 2
}

其实这个请求还支持使用POST方式发送,路径和上面一样的时候结果一致,

POST可以不带ID发送(不带最后的 /1),ES会自动生成一个ID,如果再次请求也会再次新增一个ID

PUT方式如果不带ID将会出现405错误:请求方式不允许PUT 必须带id

1.3查询文档

GET customer/external/1

{
    "_index": "customer", //在哪个索引
    "_type": "external", //在哪个类型
    "_id": "1",  //记录id
    "_version": 2,  //版本号
    "_seq_no": 1,  //并发控制字段,每次更新就会+1,用来做乐观锁
    "_primary_term": 2,  //同上,主分片重新分配,如重启,就会变化
    "found": true,
    "_source": {
        "name": "jack"
    }
}
更新携带 ?if_seq_no=0&if_primary_term=1  乐观锁机制

1.4乐观锁演示

两个put语句后面都跟上?if_seq_noi=1&if_primary_term=1
并发控制号(seq_noi=1)

当第一个修改后seq_no变为2,那么另外一个就不能更新了

第二个更新就报错

相当于mysql的乐观锁操作

1.5更新文档

带_update

使用后缀_update明确表明这是一个文档更新命令
POST customer/external/1/_update

{
  "doc":{
    "name":"John Doew"
  }
}

如果更新数据和上次的一模一样那么不会更新数据的版本号,序列号,result也会显示“noop”

不带_update

POST customer/external/1

{
  "name":"john Doe2"
}

或者
PUT customer/external/1

PUT和POST(不带_update)都会直接更新数据,版本号序列号都会发生改变

1.6删除文档&索引

DELETE customer/external/1 //删除文档
DELETE customer //删除索引

es没有提供类型(type)的删除,如果要删除只能删除整个index,所以7+版本将type弃用了

1.7bulk批量API

POST customer/external/_bulk

{"index":{"_id":"1"}}
{"name": "JSON Doe"}
{"index":{"_id":"2"}}
{"name": "Jone Doe"}
  • 语法格式
    两行为一个整体
    {action:{metadata}}//指定操作类型和id
    {requestbody} //内容

  • 复杂实例

POST /_bulk
//删除
{"delete":{"_index":"website","_type":"blog","_id":"123"}}

//创建
{"create":{"_index":"website","_type":"blog","id":"123"}}
{"title": "My first blog post"}

//保存
{"index": {"_index":"website","_type":"blog"}}
{"title": "My second blog post"}

//更新
{"update":{"_index":"website","_type":"blog","_id":"123"}}
{"doc":{"title":"My updated blog post"}}

批量操作中的每一个操作相互独立,可以独立成功或失败,彼此没有影响。

标签:es7,检索,.+,index,blog,customer,external,type,id
来源: https://www.cnblogs.com/psyduck/p/14470633.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有